Skip to content

fiftin/vpsbenchmarker

Repository files navigation

VPS Benchmarker

Logo

Tool for benchmarking VPS servers with using API of cloud providers.

How it works

  • It creates virtual server with using cloud service API.
  • It connects to server over SSH and runs benchmarks.
  • It terminates server with using cloud service API.
  • It stores results to fastlix.com. Can be customized by you.

Supported services

Supported benchmarking tools

  • sysbench — Scriptable database and system performance benchmark.
  • iperf3 — Tool for testing of network bandwidth.

How to use

npm run start --provider=hetzner --server=test

Configuration

Configuration reads from config.json. Example of configuration you can find in config-example.json.

Config contains 3 root sections:

  • benchmarks
  • storage
  • providers

Below for details of each.

benchmarks

Example of benchmark 1 core CPU with using tool sysbench:

{
  "benchmarks": {
    "sysbench-cpu-1core": {
      "type": "sysbench",
      "test": "cpu",
      "threads": 1,
      "max-requests": -1,
      "max-time": 300
    }
  }
}

Each benchmark has unique name (sysbench-cpu-1core). It uses to link from other sections of configuration.

type specifies witch type of benchmark should be used. Available next types:

  • sysbench — benchmarking CPU, memory, disk with using sysbench tool. You can use any options of sysbench in for this benchmark. For example option test can be:
    • cpu — CPU benchmark.
      Additional options:
      threads — Number of threads.
    • memory — I/O benchmark.
      Additional options:
      size — Space in gigabytes should be used for benchmarking.
  • iperf3 — benchmark network bandwidth with using tool iperf3.
  • cpuinfo — getting info about CPU from /proc/cpuinfo.
  • meminfo — getting info about memory from /proc/meminfo.

storage

Where you can store results of benchmarking. Now supported only mydataspace.net / web20.site storage.

Example:

"storage": {
  "type": "MdsStorage",
  "clientId": "***",
  "accessToken": "***",
  "root": "cloudbench",
  "path": "results",
  "groupedResultsPath": "grouped-results"
}

providers

Contains configurations for access to cloud providers API.

Example:

"providers": {
  "digitalocean": {
    "name": "DigitalOcean",
    "settings": {
      "apiToken": "***",
      "sshKey": "234234",
      "privateKey": "C:\\Users\\john\\.ssh\\id_rsa"
    },
    "servers": {
      "digitalocean-512mb-nyc1": {
        "name": "512mb-nyc1",
        "type": "512mb",
        "image": "ubuntu-16-04-x64",
        "location": "nyc3"
      },
    }
  } 
}

Where I can see results?

We use this tool on cloudbench.io. We collect cloud plan specifications, thoroughly test their performance and provide screening and comparison tools to make cloud search easy and fun.

Our blog with last news of cloud computing industry: https://cloudbench.io/blog/en.