We are looking for a replacement for Digital Ocean among domestic hosting companies

    I am a fan of virtual servers, as in most cases they provide more freedom and opportunities than classic shared hosting and at the same time are more convenient in operation compared to dedicated servers.
    Just three years ago, there was virtually no alternative to Digital Ocean's virtual servers. In Russia, there were practically no similar services. And prices for foreign offers started from 5 US dollars per month, which in terms of the then exchange rate was about 150 rubles and was comparable to conventional hosting. However, when the dollar and the euro doubled in price, using the services of foreign providers became quite unprofitable.

    At the end of 2014, I noticed that many customers of budget foreign hosters (Hetzner, OVH, etc.), after a sharp drop in the ruble exchange rate, began to transfer their projects to domestic sites. Like many users of Habr, I used to use the services of Vultr and Digital Ocean, but in the current economic situation I began to think about finding a similar service in Russia.

    We must pay tribute: domestic companies got it right on time and starting from the second half of 2014, providers who are almost Digital Ocean clones began to enter the hosting market one by one: with a very similar set of configurations, with a similar set of services and even with a similar control panel design . Everything would be fine, but many of us have one interesting feature: we are very distrustful, and often disdain, of everything that has been produced in our own country and a priori consider it worse than foreign analogues. As my first manager said about domestic equipment many years ago: “Only champagne can be Soviet!”

    So is it worth using budgetary domestic “virtual machines” or is it still better to tighten your belts tighter, but at the same time stay with a proven and familiar DO? In this review, I will try to give an impartial and unbiased answer to this question. To do this, I will compare Digital Ocean with popular domestic virtual server providers: SimpleCloud, Flops, VDSina and Vscale.

    Company Brief


    SimpleCloud is a company from St. Petersburg. Entered the market in 2014. All the company's equipment is located in the St. Petersburg Miran 2 data center.
    Flops is a Performanceix project launched in 2014. The equipment is located in a data center in Moscow.
    Vscale - the project of the company "Selectel". Launched in August 2015. All Vscale hardware infrastructure is currently located in the Selectel data center in St. Petersburg.
    VDSina is a project of Hosting Technologies LLC. According to information on the official website, the company's equipment is located in a data center in the Netherlands.

    Tariff Plans


    I'll start by comparing the most popular tariffs for all the providers in question:

    ProviderVirtualizationCPU CoresRAM, GBSSD GBTraffic, TBPrice, rub / month
    VscaleKvm11thirty2400
    Digital oceanKvm11thirty210 USD (~ 700 rub)
    Simple cloudKvm1240Unlimited500
    FlopsKvm11321.8 (60 GB per day)500
    VdsinaKvm11thirty2399


    All configurations are very similar and about the same. However, with the current situation of the value of foreign currency, the offer from Digital Ocean for the Russian user is the most expensive. Flops has a lower tariff than DO, but higher than Vscale and VDSina. SimpleCloud has a very interesting offer: 2 GB of memory and 40 GB of SSD (this is more than all the providers presented in the review), unlimited traffic. And this pleasure costs only 500 rubles.

    Let's check what VDS providers can offer for 400 - 500 rubles.

    Number of operating systems


    Vscale offers the following Linux distributions for installation on virtual machines: Ubuntu, Debian, OpenSUSE, CentOS, and Fedora. By the way, the other day - right after the official release - Vscale and Digital Ocean have Ubuntu 16.04. Windows is not and will not be - the creators announced this in one of the promostats on Habré.

    Digital Ocean offers a very wide selection of distributions: Ubuntu, Debian, CentOS, Fedora, CoreOS, FreeBSD. There is no Windows, and as far as I know, it is not planned yet.

    Flops has the following Linux distributions: Debian, Ubuntu, CentOS, OpenSUSE, Fedora. You can also install Windows Server 2008R2 and 2012R2 on virtual servers. True, the prices of Windows servers can hardly be called affordable: for 11,200 rubles a month (the cost of the most “advanced” configuration), you can already rent a dedicated server with comparable characteristics. There are no images with preinstalled software.

    Simple Cloud offers a wide selection of Linux distributions for installation: Ubuntu, Debian, Fedora, CentOS, ArchLinux, Gentoo, CoreOS, CloudLinux, and a completely exotic Exherbo. You can also install FreeBSD. In addition, there is a good selection of images with preinstalled software: these are popular CMS, hosting control panels, engines for online stores and much more.

    For VDSina, only CentOS, Debian, and Ubuntu are available from Linux distributions. It is also possible to install FreeBSD and Windows. There are no images with preinstalled software.

    If you do not use Windows, then Digital Ocean is in the lead in the “Choice of Operating Systems” nomination, and domestic virtual server providers still have work to do in this regard.

    API


    Digital Ocean has an API that is highly documented. For him, there are dozens of clients developed by the community. Not a single domestic provider can boast of anything like that.

    Vscale has a simple and highly documented API. With it, you can perform basic operations with servers (create, delete, reboot, reinstall, switch to another tariff plan), manage domains, view information about the current account, work with the ticket system. Around Vscale, a community of users is already developing that develop their own clients for the API: on Go, on Ruby, and on Java. Not so long ago, a plugin for Docker Machine appeared. According to my data, other domestic providers so far cannot boast of anything like that.

    SimpleCloud also has a public API. It is documented in sufficient detail. Using it, you can perform the same operations as using the Digital Ocean API: create new servers, turn them on, turn off and restart them, add domains, and create backups. I couldn’t find anything about the availability of clients for this API during the work on the article.

    The Flops API has, but is not public: access to it is available only upon request. I did not find any documentation on the site.

    VDSina is the only participant in the review whose information on the API I did not find in open sources.

    Performance tests


    Let's move on to the most interesting and important part of the review - performance tests. All the tests below were carried out on the basis of virtual servers of the following configurations:

    ● Vscale - 1 CPU / 1 GB RAM / 30 GB SSD /;
    ● Digital Ocean - 1 CPU / 1 GB RAM / 30 GB SSD /;
    ● Flops - 1 CPU / 1 GB RAM / 32 GB SSD;
    ● VDSina - 1 CPU / 1 GB RAM / 30 GB SSD;

    The following tests were carried out:

    ● UnixBench test
    ● processor and memory tests using the Sysbench utility;
    ● I / O tests using the fio utility.

    Sysbench Tests


    CPU test


    $ sysbench --test=cpu --cpu-max-prime=20000 run
    

    The lower the number, the better the result.

    In this test, Vscale shows the best result - 3.02 milliseconds. In second place is SimpleCloud with a result of 3.07 ms. In third place is Digital Ocean (3.84 ms). Next is VDSina with a result of 4.09 milliseconds. Last place - at Flops (4.25 ms).

    Memory test


    $ sysbench --test=memory --memory-total-size=1G run
    

    Using the above command, a read-write test of 1 GB of data in RAM is launched. The results are shown in the following illustration (the smaller the number, the better the result):

    As you can see, the SImple Cloud test (0.3663 s) is the fastest to cope with. In second place is Vscale (0.5663 s), in third - VDSina (0, 5883 s). Next come Digital Ocean (0.8304 s) and Flops (1.0674 s).

    UnixBench Tests


    The UnixBench utility is often used to test virtual Linux servers. It runs performance tests and on their basis calculates the final result - the so-called System Benchmark Index Score. The higher this figure, the better the result:

    According to the results of this test, Digital Ocean (1243.0) is in the first place. Next come VDSina (1198.0) and Vscale (1056.0). In fourth place is SimpleCloud (530.4). The lowest result is for Flops (380.3).

    Disk subsystem performance


    Now we compare the performance of the disk subsystem of all providers. All tests (results are given below) were carried out using the fio utility.

    Random read / write


    $ fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=test --bs=4k --iodepth=64 --size=4G --readwrite=randrw --rwmixread=75
    


    Vscale
    test: (groupid = 0, jobs = 1): err = 0: pid = 27836:
    read: io = 3071.7MB, bw = 212584KB / s, iops = 53145 , runt = 14796msec
    write: io = 1024.4MB, bw = 70892KB / s, iops = 17722 , runt = 14796msec
    cpu: usr = 16.93%, sys = 32.63%, ctx = 18011, majf = 0, minf = 22
    IO depths: 1 = 0.1%, 2 = 0.1%, 4 = 0.1% , 8 = 0.1%, 16 = 0.1%, 32 = 0.1%,> = 64 = 100.0%
    submit: 0 = 0.0%, 4 = 100.0%, 8 = 0.0%, 16 = 0.0%, 32 = 0.0%, 64 = 0.0%,> = 64 = 0.0%
    complete: 0 = 0.0%, 4 = 100.0%, 8 = 0.0%, 16 = 0.0%, 32 = 0.0%, 64 = 0.1%,> = 64 = 0.0%
    issued: total = r = 786347 / w = 262229 / d = 0, short = r = 0 / w = 0 / d = 0

    Run status group 0 (all jobs):
    READ: io = 3071.7MB, aggrb = 212583KB / s, minb = 212583KB / s, maxb = 212583KB / s, mint = 14796msec, maxt = 14796msec
    WRITE: io = 1024.4MB, aggrb = 70891KB / s, minb = 70891KB / s, maxb = 70891KB / s, mint = 14796msec, maxt = 14796msec

    Disk stats (read / write):
    vda: ios = 774997/258507, merge = 0/3, ticks = 720836/243716, in_queue = 675204, util = 96.32%


    Digital ocean
    test: (groupid = 0, jobs = 1): err = 0: pid = 1502:
    read: io = 3071.7MB, bw = 212684KB / s, iops = 53171 , runt = 14789msec
    write: io = 1024.4MB, bw = 70925KB / s, iops = 17731 , runt = 14789msec
    cpu: usr = 15.70%, sys = 62.97%, ctx = 37546, majf = 0, minf = 22
    IO depths: 1 = 0.1%, 2 = 0.1%, 4 = 0.1% , 8 = 0.1%, 16 = 0.1%, 32 = 0.1%,> = 64 = 100.0%
    submit: 0 = 0.0%, 4 = 100.0%, 8 = 0.0%, 16 = 0.0%, 32 = 0.0%, 64 = 0.0%,> = 64 = 0.0%
    complete: 0 = 0.0%, 4 = 100.0%, 8 = 0.0%, 16 = 0.0%, 32 = 0.0%, 64 = 0.1%,> = 64 = 0.0%
    issued: total = r = 786347 / w = 262229 / d = 0, short = r = 0 / w = 0 / d = 0

    Run status group 0 (all jobs):
    READ: io = 3071.7MB, aggrb = 212684KB / s, minb = 212684KB / s, maxb = 212684KB / s, mint = 14789msec, maxt = 14789msec
    WRITE: io = 1024.4MB, aggrb = 70925KB / s, minb = 70925KB / s, maxb = 70925KB / s, mint = 14789msec, maxt = 14789msec

    Disk stats (read / write):
    vda: ios = 783813/261330, merge = 0/3, ticks = 155432/539592, in_queue = 694836, util = 99.45%


    Simple cloud
    test: (groupid = 0, jobs = 1): err = 0: pid = 30299:
    read: io = 3071.7MB, bw = 15004KB / s, iops = 3751 , runt = 209632msec
    write: io = 1024.4MB, bw = 5003.7 KB / s, iops = 1250 , runt = 209632msec
    cpu: usr = 1.50%, sys = 6.29%, ctx = 436095, majf = 0, minf = 7
    IO depths: 1 = 0.1%, 2 = 0.1%, 4 = 0.1 %, 8 = 0.1%, 16 = 0.1%, 32 = 0.1%,> = 64 = 100.0%
    submit: 0 = 0.0%, 4 = 100.0%, 8 = 0.0%, 16 = 0.0%, 32 = 0.0%, 64 = 0.0%,> = 64 = 0.0%
    complete: 0 = 0.0%, 4 = 100.0%, 8 = 0.0%, 16 = 0.0%, 32 = 0.0%, 64 = 0.1%,> = 64 = 0.0%
    issued : total = r = 786347 / w = 262229 / d = 0, short = r = 0 / w = 0 / d = 0

    Run status group 0 (all jobs):
    READ: io = 3071.7MB, aggrb = 15004KB / s, minb = 15004KB / s, maxb = 15004KB / s, mint = 209632msec, maxt = 209632msec
    WRITE: io = 1024.4MB, aggrb = 5003KB / s, minb = 5003KB / s, maxb = 5003KB / s, mint = 209632msec, maxt = 209632msec

    Disk stats (read / write):
    sda: ios = 786305/262316, merge = 0/49, ticks = 12138328/1234504, in_


    Flops
    Test: Laying out IO file (s) (1 file (s) / 4096MB)
    Jobs: 1 (f = 1): [m] [100.0% done] [2261KB / 675KB / 0KB / s] [565/168/0 iops] [eta 00m: 00s]
    test: (groupid = 0, jobs = 1): err = 0: pid = 1366:
    read: io = 3071.7MB, bw = 2226.5KB / s, iops = 556 , runt = 1412766msec
    write : io = 1024.4MB, bw = 760274B / s, iops = 185 , runt = 1412766msec
    cpu: usr = 0.58%, sys = 2.30%, ctx = 1003423, majf = 0, minf = 6
    IO depths: 1 = 0.1%, 2 = 0.1%, 4 = 0.1%, 8 = 0.1%, 16 = 0.1%, 32 = 0.1%,> = 64 = 100.0%
    submit: 0 = 0.0%, 4 = 100.0%, 8 = 0.0%, 16 = 0.0%, 32 = 0.0%, 64 = 0.0%,> = 64 = 0.0%
    complete: 0 = 0.0%, 4 = 100.0%, 8 = 0.0%, 16 = 0.0%, 32 = 0.0%, 64 = 0.1% ,> = 64 = 0.0%
    issued: total = r = 786347 / w = 262229 / d = 0, short = r = 0 / w = 0 / d = 0

    Run status group 0 (all jobs):
    READ: io = 3071.7MB, aggrb = 2226KB / s, minb = 2226KB / s, maxb = 2226KB / s, mint = 1412766msec, maxt = 1412766msec
    WRITE: io = 1024.4MB, aggrb = 742KB / s, minb = 742KB / s, maxb = 742KB / s, mint = 1412766msec, maxt = 1412766msec


    Vdsina
    test: (groupid = 0, jobs = 1): err = 0: pid = 28951:
    read: io = 3071.7MB, bw = 193837KB / s, iops = 48459 , runt = 16227msec
    write: io = 1024.4MB, bw = 64640KB / s, iops = 16160 , runt = 16227msec
    cpu: usr = 10.31%, sys = 31.69%, ctx = 148968, majf = 0, minf = 22
    IO depths: 1 = 0.1%, 2 = 0.1%, 4 = 0.1% , 8 = 0.1%, 16 = 0.1%, 32 = 0.1%,> = 64 = 100.0%
    submit: 0 = 0.0%, 4 = 100.0%, 8 = 0.0%, 16 = 0.0%, 32 = 0.0%, 64 = 0.0%,> = 64 = 0.0%
    complete: 0 = 0.0%, 4 = 100.0%, 8 = 0.0%, 16 = 0.0%, 32 = 0.0%, 64 = 0.1%,> = 64 = 0.0%
    issued: total = r = 786347 / w = 262229 / d = 0, short = r = 0 / w = 0 / d = 0

    Run status group 0 (all jobs):
    READ: io = 3071.7MB, aggrb = 193836KB / s, minb = 193836KB / s, maxb = 193836KB / s, mint = 16227msec, maxt = 16227msec
    WRITE: io = 1024.4MB, aggrb = 64640KB / s, minb = 64640KB / s, maxb = 64640KB / s, mint = 16227msec, maxt = 16227msec

    Disk stats (read / write):
    vda: ios = 770125/256758, merge = 0/7, ticks = 58980/918912, in_queue = 978268, util = 99.42%


    Summary Comparison Table:
    ProviderResult
    Digital oceanread iops = 53 171, write iops = 17 731
    Vscaleread iops = 53 145, write iops = 17 722
    Vdsinaread iops = 48 459, write iops = 16 160
    Simple cloudread iops = 3,751, write iops = 1,250
    Flopsread iops = 556, write iops = 185


    Random reading


    $ fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=test --bs=4k --iodepth=64 --size=4G --readwrite=randread
    


    Vscale
    test: (g = 0): rw = randread, bs = 4K-4K / 4K-4K / 4K-4K, ioengine = libaio, iodepth = 64
    fio-2.1.3
    Starting 1 process
    test: (groupid = 0, jobs = 1): err = 0: pid = 3196:
    read: io = 4096.0MB, bw = 431690KB / s, iops = 107922 , runt = 9716msec
    cpu: usr = 23.12%, sys = 44.50%, ctx = 15090, majf = 0 , minf = 88
    IO depths: 1 = 0.1%, 2 = 0.1%, 4 = 0.1%, 8 = 0.1%, 16 = 0.1%, 32 = 0.1%,> = 64 = 100.0%
    submit: 0 = 0.0%, 4 = 100.0%, 8 = 0.0%, 16 = 0.0%, 32 = 0.0%, 64 = 0.0%,> = 64 = 0.0%
    complete: 0 = 0.0%, 4 = 100.0%, 8 = 0.0%, 16 = 0.0%, 32 = 0.0%, 64 = 0.1%,> = 64 = 0.0%
    issued: total = r = 1048576 / w = 0 / d = 0, short = r = 0 / w = 0 / d = 0


    Digital ocean
    test: (groupid = 0, jobs = 1): err = 0: pid = 1517:
    read: io = 4096.0MB, bw = 409400KB / s, iops = 102350 , runt = 10245msec
    cpu: usr = 16.84%, sys = 72.93 %, ctx = 8625, majf = 0, minf = 88
    IO depths: 1 = 0.1%, 2 = 0.1%, 4 = 0.1%, 8 = 0.1%, 16 = 0.1%, 32 = 0.1%,> = 64 = 100.0%
    submit: 0 = 0.0%, 4 = 100.0%, 8 = 0.0%, 16 = 0.0%, 32 = 0.0%, 64 = 0.0%,> = 64 = 0.0%
    complete: 0 = 0.0%, 4 = 100.0 %, 8 = 0.0%, 16 = 0.0%, 32 = 0.0%, 64 = 0.1%,> = 64 = 0.0%
    issued: total = r = 1048576 / w = 0 / d = 0, short = r = 0 / w = 0 / d = 0

    Run status group 0 (all jobs):
    READ: io = 4096.0MB, aggrb = 409400KB / s, minb = 409400KB / s, maxb = 409400KB / s, mint = 10245msec, maxt = 10245msec

    Disk stats (read / write):
    vda: ios = 1043338/2, merge = 0/1, ticks = 250480/144, in_queue = 250380, util = 97.64%


    Simple cloud
    test: (groupid = 0, jobs = 1): err = 0: pid = 30397:
    read: io = 4096.0MB, bw = 20009KB / s, iops = 5002 , runt = 209620msec
    cpu: usr = 2.19%, sys = 8.57 %, ctx = 1018919, majf = 0, minf = 70
    IO depths: 1 = 0.1%, 2 = 0.1%, 4 = 0.1%, 8 = 0.1%, 16 = 0.1%, 32 = 0.1%,> = 64 = 100.0%
    submit: 0 = 0.0%, 4 = 100.0%, 8 = 0.0%, 16 = 0.0%, 32 = 0.0%, 64 = 0.0%,> = 64 = 0.0%
    complete: 0 = 0.0%, 4 = 100.0 %, 8 = 0.0%, 16 = 0.0%, 32 = 0.0%, 64 = 0.1%,> = 64 = 0.0%
    issued: total = r = 1048576 / w = 0 / d = 0, short = r = 0 / w = 0 / d = 0

    Run status group 0 (all jobs):
    READ: io = 4096.0MB, aggrb = 20009KB / s, minb = 20009KB / s, maxb = 20009KB / s, mint = 209620msec, maxt = 209620msec

    Disk stats (read / write):
    sda: ios = 1048416/32, merge = 0/18, ticks = 13391324/0, in_queue = 13391244, util = 100.00%


    Flops
    Ttest: (g = 0): rw = randread, bs = 4K-4K / 4K-4K / 4K-4K, ioengine = libaio, iodepth = 64
    fio-2.1.3
    Starting 1 process
    Jobs: 1 (f = 1): [r] [100.0% done] [2261KB / 0KB / 0KB / s] [565/0/0 iops] [eta 00m: 00s]
    test: (groupid = 0, jobs = 1): err = 0: pid = 1486 :
    read: io = 4096.0MB, bw = 2259.9KB / s, iops = 564 , runt = 1856032msec
    cpu: usr = 0.51%, sys = 1.75%, ctx = 1036500, majf = 0, minf = 70
    IO depths: 1 = 0.1%, 2 = 0.1%, 4 = 0.1%, 8 = 0.1%, 16 = 0.1%, 32 = 0.1%,> = 64 = 100.0%
    submit: 0 = 0.0%, 4 = 100.0%, 8 = 0.0% , 16 = 0.0%, 32 = 0.0%, 64 = 0.0%,> = 64 = 0.0%
    complete: 0 = 0.0%, 4 = 100.0%, 8 = 0.0%, 16 = 0.0%, 32 = 0.0%, 64 = 0.1%,> = 64 = 0.0%
    issued: total = r = 1048576 / w = 0 / d = 0, short = r = 0 / w = 0 / d = 0

    Run status group 0 (all jobs):
    READ: io = 4096.0MB, aggrb = 2259KB / s, minb = 2259KB / s, maxb = 2259KB / s, mint = 1856032msec, maxt = 1856032msec

    Disk stats (read / write):
    vda: ios = 1048488/40, merge = 0/2, ticks = 118733168/20, in_queue = 118736612, util = 100.00%


    Vdsina
    test: (groupid = 0, jobs = 1): err = 0: pid = 28962:
    read: io = 4096.0MB, bw = 392394KB / s, iops = 98098 , runt = 10689msec
    cpu: usr = 10.59%, sys = 27.46 %, ctx = 16742, majf = 0, minf = 88
    IO depths: 1 = 0.1%, 2 = 0.1%, 4 = 0.1%, 8 = 0.1%, 16 = 0.1%, 32 = 0.1%,> = 64 = 100.0%
    submit: 0 = 0.0%, 4 = 100.0%, 8 = 0.0%, 16 = 0.0%, 32 = 0.0%, 64 = 0.0%,> = 64 = 0.0%
    complete: 0 = 0.0%, 4 = 100.0 %, 8 = 0.0%, 16 = 0.0%, 32 = 0.0%, 64 = 0.1%,> = 64 = 0.0%
    issued: total = r = 1048576 / w = 0 / d = 0, short = r = 0 / w = 0 / d = 0

    Run status group 0 (all jobs):
    READ: io = 4096.0MB, aggrb = 392394KB / s, minb = 392394KB / s, maxb = 392394KB / s, mint = 10689msec, maxt = 10689msec

    Disk stats (read / write):
    vda: ios = 1046002/2, merge = 0/3, ticks = 521024/0, in_queue = 520932, util = 90.98%




    Random record


    $ fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=test --bs=4k --iodepth=64 --size=4G --readwrite=randwrite
    


    Vscale
    test: (groupid = 0, jobs = 1): err = 0: pid = 6938:
    write: io = 4096.0MB, bw = 168324KB / s, iops = 42081 , runt = 24918msec
    cpu: usr = 11.49%, sys = 21.74 %, ctx = 23438, majf = 0, minf = 23
    IO depths: 1 = 0.1%, 2 = 0.1%, 4 = 0.1%, 8 = 0.1%, 16 = 0.1%, 32 = 0.1%,> = 64 = 100.0%
    submit: 0 = 0.0%, 4 = 100.0%, 8 = 0.0%, 16 = 0.0%, 32 = 0.0%, 64 = 0.0%,> = 64 = 0.0%
    complete: 0 = 0.0%, 4 = 100.0 %, 8 = 0.0%, 16 = 0.0%, 32 = 0.0%, 64 = 0.1%,> = 64 = 0.0%
    issued: total = r = 0 / w = 1048576 / d = 0, short = r = 0 / w = 0 / d = 0

    Run status group 0 (all jobs):
    WRITE: io = 4096.0MB, aggrb = 168324KB / s, minb = 168324KB / s, maxb = 168324KB / s, mint = 24918msec, maxt = 24918msec

    Disk stats (read / write):
    vda: ios = 0/1030402, merge = 0/17, ticks = 0/34913120, in_queue = 1325900, util = 98.18%


    Digital ocean
    test: (groupid = 0, jobs = 1): err = 0: pid = 1636:
    write: io = 4096.0MB, bw = 66239KB / s, iops = 16559 , runt = 63321msec
    cpu: usr = 4.25%, sys = 14.73 %, ctx = 42263, majf = 0, minf = 23
    IO depths: 1 = 0.1%, 2 = 0.1%, 4 = 0.1%, 8 = 0.1%, 16 = 0.1%, 32 = 0.1%,> = 64 = 100.0%
    submit: 0 = 0.0%, 4 = 100.0%, 8 = 0.0%, 16 = 0.0%, 32 = 0.0%, 64 = 0.0%,> = 64 = 0.0%
    complete: 0 = 0.0%, 4 = 100.0 %, 8 = 0.0%, 16 = 0.0%, 32 = 0.0%, 64 = 0.1%,> = 64 = 0.0%
    issued: total = r = 0 / w = 1048576 / d = 0, short = r = 0 / w = 0 / d = 0

    Run status group 0 (all jobs):
    WRITE: io = 4096.0MB, aggrb = 66238KB / s, minb = 66238KB / s, maxb = 66238KB / s, mint = 63321msec, maxt = 63321msec

    Disk stats (read / write):
    vda: ios = 0/1046844, merge = 0/51, ticks = 0/3713496, in_queue = 3713192, util = 99.30%


    Simple cloud
    test: (groupid = 0, jobs = 1): err = 0: pid = 30429:
    write: io = 4096.0MB, bw = 20008KB / s, iops = 5001 , runt = 209632msec
    cpu: usr = 1.49%, sys = 5.54 %, ctx = 307019, majf = 0, minf = 6
    IO depths: 1 = 0.1%, 2 = 0.1%, 4 = 0.1%, 8 = 0.1%, 16 = 0.1%, 32 = 0.1%,> = 64 = 100.0%
    submit: 0 = 0.0%, 4 = 100.0%, 8 = 0.0%, 16 = 0.0%, 32 = 0.0%, 64 = 0.0%,> = 64 = 0.0%
    complete: 0 = 0.0%, 4 = 100.0 %, 8 = 0.0%, 16 = 0.0%, 32 = 0.0%, 64 = 0.1%,> = 64 = 0.0%
    issued: total = r = 0 / w = 1048576 / d = 0, short = r = 0 / w = 0 / d = 0

    Run status group 0 (all jobs):
    WRITE: io = 4096.0MB, aggrb = 20007KB / s, minb = 20007KB / s, maxb = 20007KB / s, mint = 209632msec, maxt = 209632msec

    Disk stats (read / write):
    sda: ios = 0/1048415, merge = 0/41, ticks = 0/13349132, in_queue = 13349652, util = 100.00%


    Flops
    test: (groupid = 0, jobs = 1): err = 0: pid = 1625:
    write: io = 4096.0MB, bw = 941412B / s, iops = 229 , runt = 4562261msec
    cpu: usr = 0.14%, sys = 0.48 %, ctx = 355691, majf = 0, minf = 7
    IO depths: 1 = 0.1%, 2 = 0.1%, 4 = 0.1%, 8 = 0.1%, 16 = 0.1%, 32 = 0.1%,> = 64 = 100.0%
    submit: 0 = 0.0%, 4 = 100.0%, 8 = 0.0%, 16 = 0.0%, 32 = 0.0%, 64 = 0.0%,> = 64 = 0.0%
    complete: 0 = 0.0%, 4 = 100.0 %, 8 = 0.0%, 16 = 0.0%, 32 = 0.0%, 64 = 0.1%,> = 64 = 0.0%
    issued: total = r = 0 / w = 1048576 / d = 0, short = r = 0 / w = 0 / d = 0


    Vdsina
    test: (groupid = 0, jobs = 1): err = 0: pid = 28983:
    write: io = 4096.0MB, bw = 66383KB / s, iops = 16595 , runt = 63183msec
    cpu: usr = 2.92%, sys = 7.93 %, ctx = 94203, majf = 0, minf = 23
    IO depths: 1 = 0.1%, 2 = 0.1%, 4 = 0.1%, 8 = 0.1%, 16 = 0.1%, 32 = 0.1%,> = 64 = 100.0%
    submit: 0 = 0.0%, 4 = 100.0%, 8 = 0.0%, 16 = 0.0%, 32 = 0.0%, 64 = 0.0%,> = 64 = 0.0%
    complete: 0 = 0.0%, 4 = 100.0 %, 8 = 0.0%, 16 = 0.0%, 32 = 0.0%, 64 = 0.1%,> = 64 = 0.0%
    issued: total = r = 0 / w = 1048576 / d = 0, short = r = 0 / w = 0 / d = 0

    Run status group 0 (all jobs):
    WRITE: io = 4096.0MB, aggrb = 66383KB / s, minb = 66383KB / s, maxb = 66383KB / s, mint = 63183msec, maxt = 63183msec

    Disk stats (read / write):
    vda: ios = 10/1035427, merge = 0/95, ticks = 28/3963080, in_queue = 3963364, util = 99.90%




    Тест на выполнение реального задания: собираем из исходников библиотеку Boost


    Tests using specialized utilities are, of course, good, but the problem is that they are divorced from real life. Let's try to complete the real task on all the servers participating in the test: assembling a set of C ++ Boost libraries from the sources. This is a rather lengthy and resource-intensive procedure, which takes decent time even on high-performance “iron” dedicated servers. Let's try to collect Boost on our VDS - and here is the result (the smaller the number, the better):

    Vscale did a great job of this task, collecting Boost in 13 minutes 44 seconds. Second place goes to SimpleCloud (14 minutes 40 seconds). In third place is VDSina with a result of 15 minutes 33 seconds. On the Digital Ocean server, the Boost assembly took 18 minutes 36 seconds. In the last place - Flops (44 minutes 52 seconds).

    Conclusion


    I will summarize the results of the comparison. Of all the providers reviewed, Simple Cloud offers the widest selection of operating systems and images with preinstalled software. Another undoubted advantage of this provider is the most interesting and attractive tariff.

    Vscale does not have such a wide selection of OC and images as SimpleCloud, but there is another advantage: very good performance. According to the results of most tests, Vscale is superior to SimpleCloud and all other reviewers (including Digital Ocean). I also note other advantages: good network connectivity (after all, this is “Selectel”), a convenient control panel (simple and modern design, nothing more). And the prices at Vscale are very reasonable. In general, I recommend paying attention to them.

    After getting to know VDSina, I had a double impression: on the one hand, the virtual machines of this provider are almost as good as Digital Ocean in performance. On the other hand, it is somewhat alarming that there is little information about this service in open sources. VDSina does not have many useful functions that other reviewers have: neither the ability to manage domains, nor backup ... However, for me personally this is not very critical.

    Flops looks very nice: a convenient control panel in the Digital Ocean style, the presence of all the necessary functions, reasonable prices. But performance tests show that in all tests Flops looks worse than the rest of the reviewers.

    I hope my review showed that the Russian is not always the worst, and everything expensive is not always the best. There are still domestic VDS providers that are not inferior (almost inferior) to foreign analogues in our country, and they are worth it to get to know them better.

    I in no case did not want to denigrate someone, or vice versa, highlight in this review. Therefore, I ask representatives of hosting companies to treat with understanding the stated point of view and my methods of testing. My review is just the result of a search for domestic alternatives to foreign companies. And it can serve readers as a methodology for conducting their own research.

    I have been writing hosting reviews since 2013. This article on Habré is an attempt to combine all previous developments and see the reaction of an already more savvy audience.

    Also popular now: