Choosing a VPS. Hosting Battle

Do you know what our small team noticed? If some time ago, literally in January, we chose the IT infrastructure very carelessly, now the attitude has changed a lot. There are really fewer resources (don't trust anyone, in IT too!) And you want to get not the first software / hosting / application with a beautiful website, but a reliable, convenient, cool solution for reasonable, adequate money. And this, with all the breadth of choice, is still a problem. We needed hosting and ... we realized that choosing it is not so easy. We have fallen into the power of a well-known dilemma: "reliable, inexpensive, convenient - choose any two features." We post the results of our search on HabrĂ© with the timid hope that our torments and tests will be useful to someone. Read, use, advise! Well, this ... let's all float out) 







Intro



Our team for one web project (it's still a secret) needed hosting, which would make our service available for collaboration 24/7. Before that, we used different shared hosting, but this hosting option is not suitable for us, because such providers rarely update software, and even if there is a choice of MySQL, PHP and Apache versions, there are usually several outdated and very outdated versions. And not everyone has tools for working with Let's Encrypt certificates, for example. But recently we decided to pay attention to dedicated virtual machines. On the one hand, a little more maintenance falls on our shoulders, but on the other hand, we get full control over all installed software.



Victim selection



There are several different services for the selection of hosting, we selected the configuration of the virtual server based on the considerations that we need 2 CPU cores, 8 GB of RAM and at least 50 GB SSD and received the following list:



  • boodet.online
  • firstvds.ru
  • fornex.com
  • fozzy.com
  • ipipe.ru
  • ispserver.com
  • profitserver.ru
  • ruvds.com
  • vdsnow.ru


Let's get to know better






boodet.online



You can buy 10, 20, 60, 100, 250, 500, 1000 or 2000 GB.



Well, there are limits for each CPU and RAM value. For example, to take advantage of 12 GB of RAM, less than 6 CPU cores cannot be ordered, and this is the next value after 8 GB. You can order VPS with up to 48 cores and up to 224 GB of RAM (Minimum - 1 core and 0.5 GB of RAM). When paying for a year, the cost of the server per month turns into 952 â‚˝.





Liked: low price



Disliked: lack of complete configuration flexibility.



Nuances: removing the server takes some time. Perhaps some of the steps are performed manually. When returning funds, the hoster requires you to explicitly indicate the details of the source of payment. The only hoster with such requirements among those we met.






firstvds.ru



Here you can select the required number of virtual server cores from 2 to 8 pcs., RAM in 2 GB increments up to 32 GB and disk in 10 GB increments from 20 to 2000 GB. There is no discount when ordering more than a month and is 1549 â‚˝ per month.





Liked: custom VDS configuration, payment through the fast payment system using a QR code.



I didn't like it: deleting the server before the end of the billing period is not provided, but as an exception, it can be deleted through technical support.






fornex.com



Choice of only fixed configurations. RUB 2711.76 per month if paid for a year.





Disliked: lack of flexible configuration.



Nuances: the delete function simply generates a request for technical support.






fozzy.com



There is no configurator, there are ready-made tariffs, we will rely on a virtual machine with 2 GB of RAM, 2 cores, 45 GB.





And add 6 GB to it. The cost is 1 939,00 â‚˝ per month.





Disliked: lack of a normal configurator.






ipipe.ru



Here, too, VPS must be assembled as a constructor. NVMe –2 + 6 GB RAM.





We get 1 459,00 â‚˝ per month.





Disliked: lack of a normal configurator.






ispserver.com



Here the configurator allows you to select the required number of cores from 2 to 8 pcs, RAM in 2 GB increments to 32 GB and disk in 10 GB increments from 20 to 2000 GB.





Liked: custom configuration.



I didn't like it: deleting the server before the end of the billing period is not provided, but as an exception, it can be deleted through technical support.






profitserver.ru



There is a full-fledged configurator here, and the amount of RAM we order is the maximum that is available for order, and the minimum you can order is 1 GB. The core can be ordered from 1 to 8 pcs., And the disk - from 20 to 100 GB. When paying for a year, the cost is RUB 1,668.50 per month





Liked: custom configuration, payment through the fast payment system using a QR code.



I didn’t like it: they refused to delete the server and refund.






ruvds.com



There is a full-fledged configurator. Available from 1 to 16 cores, 0.5 to 16 GB of RAM and 10 to 600 GB of disk.





But we chose a ready-made tariff, because it's cheaper - only 1333 â‚˝ per month.





Liked: custom configuration.



I didn’t like it: the selected tariff can only be purchased for exactly three months, and you cannot extend the server earlier than a few days before the end of the billing period.






vdsnow.ru



There is a full configurator here. You can choose from 1 to 8 cores, 1 to 32 GB of RAM, and from 10 to 150 GB of disk. 1320 â‚˝ monthly without discount when paying for a longer period.





Liked: flexible configuration.






The purpose of the battle



We have selected several services and decided to choose the most suitable one, both in terms of price and performance. Hoping to find a service that is both cheap and productive is a utopia, so we will try to find a balanced solution.



Preparing for battle



In order not to reinvent the wheel and not waste a lot of time, we decided to use a ready-made performance test suite - Phoromatic . At first there was an idea to just run some kind of console bench (like sysbench) via cron on a schedule. But after a little googling, we found a very interesting option: www.phoronix-test-suite.com .



The Phoronix Test Suite (PTS) is free and open source software for Linux and other operating systems developed by Michael Larabel and Matthew Tippett.


The Phoronix benchmark suite has been endorsed by sites such as Linux.com, LinuxPlanet, and Softpedia called it "the best platform for performance testing." The Phoronix Test Suite is also used by Tom's Hardware, ASELabs and other review sites.



In essence, this is a huge library of various test problems, with the help of which you can evaluate the quality and stability of the operation of an entire physical machine, or conduct a highly specialized test aimed at something specific. But we were especially attracted by the Phoromatic subsystem.



Phoromatic — - Phoronix Test Suite. (). Phoromatic .


Phoromatic is launched on a separate server, after which test machines are connected to it. The process is as simple as possible, the developers have provided ready-made scripts for installation in their repository for both Unix systems and Windows. We just have to make sure there are dependencies necessary for the work and execute the installation script, then all the work will be carried out in the Phoromatic web interface.



After starting Phoromatic, go to the web interface, where we will be asked to provide the administrator's credentials. After that, the main page of the system will open:





In general, Phoromatic is able to independently deploy the necessary components on test machines. You only need to provide SSH access:





This can be handy if you have a huge fleet of test machines. We took a different path. Phoronix Test Suite was installed on each test machine and using a simple command:



phoronix-test-suite phoromatic.connect my-domain.xyz:8855/1P81YS


they were joining the Phoromatic server. Next, we combined all systems into one group, which made it possible to run tests synchronously on all machines.





Then we proceed to the selection of the required tests. We settled on the following set:



System CPU\RAM:
>> Sysbench [pts/sysbench-1.0.0]
     This is a benchmark of Sysbench with CPU and memory sub-test
>> Apache Benchmark [pts/apache-1.7.2]
     This is a test of ab, which is the Apache benchmark program. This test profile measures how many requests per second a given system can sustain when carrying out 1,000,000 requests with 100 requests being carried out concurrently.
>> PHPBench [pts/phpbench-1.1.5]
     PHPBench is a benchmark suite for PHP. It performs a large number of simple tests in order to bench various aspects of the PHP interpreter. PHPBench can be used to compare hardware, operating systems, PHP versions, PHP accelerators and caches, compiler options, etc. The number of iterations used is 1,000,000.
===
CPU:
>> Swet [pts/swet-1.0.0]
     Swet is a synthetic CPU/RAM benchmark, includes multi-processor test cases.
>> OpenSSL [pts/openssl-1.11.0]
     OpenSSL is an open-source toolkit that implements SSL (Secure Sockets Layer) and TLS (Transport Layer Security) protocols. This test measures the RSA 4096-bit performance of OpenSSL.
===
RAM:
>> pmbench [pts/pmbench-1.0.2]
     Pmbench is a Linux paging and virtual memory benchmark. This test profile will report the average page latency of the system.
     - Concurrent Worker Threads: 2 - Read-Write Ratio: 50%
>> Tinymembench [pts/tinymembench-1.0.2]
     This benchmark tests the system memory (RAM) performance.
===
Network:
>> Loopback TCP Network Performance [pts/network-loopback-1.0.3]
     This test measures the loopback network adapter performance using a micro-benchmark to measure the TCP performance.
===
Disc:
>> Flexible IO Tester [pts/fio-1.13.2]
     Fio is an advanced disk benchmark that depends upon the kernel's AIO access library.
     - Random Read - Engine: Linux AIO - Buffered: Yes - Direct: No - Block Size: 4KB - Disk Target: Default Test Directory
     - Random Read - Engine: Linux AIO - Buffered: Yes - Direct: No - Block Size: 4MB - Disk Target: Default Test Directory
     - Random Read - Engine: Linux AIO - Buffered: Yes - Direct: No - Block Size: 512KB - Disk Target: Default Test Directory
     - Random Read - Engine: Linux AIO - Buffered: Yes - Direct: No - Block Size: 64KB - Disk Target: Default Test Directory
     - Random Write - Engine: Linux AIO - Buffered: Yes - Direct: No - Block Size: 4KB - Disk Target: Default Test Directory
     - Random Write - Engine: Linux AIO - Buffered: Yes - Direct: No - Block Size: 4MB - Disk Target: Default Test Directory
     - Random Write - Engine: Linux AIO - Buffered: Yes - Direct: No - Block Size: 512KB - Disk Target: Default Test Directory
     - Random Write - Engine: Linux AIO - Buffered: Yes - Direct: No - Block Size: 64KB - Disk Target: Default Test Directory
>> SQLite [pts/sqlite-2.1.0]
     This is a simple benchmark of SQLite. At present this test profile just measures the time to perform a pre-defined number of insertions on an indexed database.

     - Threads / Copies: 1


Such a set may seem superfluous, but we wanted to get an idea of ​​the operation of each of the system components: disk, RAM, CPU, network.



Now you need to create the very schedule according to which the tests will be executed:









We put all the tests we selected there:





As a result, we got 4 scenarios with the same set of tests. The scripts ran at 04:00, 10:00, 14:00, and 19:00 every day. A sequential start of all selected tests was initiated and the results were obtained. Now all that was left was to wait. After 2 weeks, we decided that was enough and turned off the scripts.



The results can be viewed directly in the browser and even make some comparisons between the test sites. However, with such a large volume, this is very inconvenient to do. Therefore, we dumped all the results into CSV and analyzed the results ourselves. Attached to this article is the resulting table so that you can analyze the results yourself.



Battle





After uploading the test results for each server, we combined them on several sheets in LibreOffice Calc (alternative to MS Excel) For each hoster - a separate sheet. Next, the arithmetic mean was taken for all the results obtained within each test. Thus, we have obtained averaged results without reference to time, which will allow us to more adequately assess the performance of machines, without taking into account the temporary influx of load created by the servers of other clients.



If you wish, you can independently build graphs for each test, for each hoster and understand how much performance differs at one o'clock on Tuesday from 3 nights on Saturday.



The obtained averaged results were summarized on one sheet with the uncomplicated name "Arithmetical mean". Now you can build diagrams that clearly show the difference between hosters for each test. On the “Final result” sheet, you can just see the received data in a form that is convenient for human perception. Each column contains both the actual arithmetic mean and the same, but in terms of 1000 ₽. This will allow us to understand which of the hosters is better in terms of price-performance ratio. In the charts, you can see two columns:



  • Blue is the actual value
  • Red - in terms of 1000 rubles.


The total offset included values ​​adjusted for value. Also note that more is better not in all tests, this is indicated in column "B":



  • HIB — Higher Is Better More Is Better ( , )
  • LIB — Low Is Better Fewer Is Better ( — )




Here are the test results:





sysbench processor performance





test sysbench memory performance





test Flexible IO Tester IOPS





disk speed test Flexible IO Tester MB / s disk speed test





Apache Benchmark Static Web Page Serving





web server performance test PHP Benchmark web server performance test





Swet Processor Performance





Test Network Controller Health Test Transfer Data Via Loopback





Tinymembench Memory Performance





Test pmbench Disk Performance





Test SQLite Database





Performance Test OpenSSL Processor Performance Test



So, we got diagrams showing the average, not time-bound value for each test separately, as well as the same values, but adjusted for the cost of the tested configuration. Thanks to them, it is relatively easy to understand the strengths and weaknesses of hosters.



Determining the winner



Let's move on to the results. To determine a favorite for ourselves, we assigned a certain weight to each place occupied in a particular test. The closer to the championship, the better. Thus, the hoster gets 9 points for the first place, 1 for the last (and vice versa, if we are talking about LIB results). Next, we simply summarize the scores obtained for each test and build the final chart.



Ruvds.com and ipipe.ru have the highest results, however, in terms of price-performance ratio, ruvds.com looks more attractive.







Conclusion



Hostings clashed in earnest - we had almost identical configurations from the same price range, but, as we said at the beginning, now every little thing decides. We still managed to identify the winner, but before we announce it, there are a couple of things that I would like to draw your attention to:



  • do not blindly copy our choice - you may have other goals, tasks, introductory and projects; you can save money and find the best solution for yourself;
  • do not skimp on matches - cheap hosting can be downright dangerous and harm not only your project, but the whole business;
  • take the time to select and analyze the solution.


Well, in terms of price-quality ratio, we were surprised by Ruvds (specifically, the "Turbo" tariff) - there are not only outstanding performance results, but also an adequate price. So the guys do not blog here for nothing - they are probably not ashamed to look into the eyes of the Habr IT cluster. Well, you - think for yourself, decide for yourself ... And, most importantly, do not lose!



You can download the original table with the results here: mega



All Articles