To compare performances of cloud servers often benchmarks are used. Standardized benchmarks are used mainly for getting a wide range of comparison metrics. However, it is found to be more practical if one compares the performance of actual tasks undertaken by servers. So, the real test is to find out how much time you will be able to save if you run an app’s automated scripts on a stronger cloud server.
To do this, it is necessary to compare performance of the Standardized Droplets and Optimized Droplets. The test application to be used to understand this is the React Boilerplate app. This contains a wide set of test scripts and since the tests are rather CPU-intensive, execution time has been selected as the comparison metric for these two Droplet configurations.
As default environment, a Standard $40 Droplet is used which has been configured with 4 CPUs, 8GB memory and 160GB SSD storage. For comparison purposes an Optimized $40 Droplet is chosen which is configured with 2 dedicated CPUs, 4GB memory and 25GB SSD storage. Both these Droplets run Ubuntu 16.04. Following the initial installation, the CPU architecture is verified by lscpu to create a basic firewall. Node.js is installed using PPA; the Node.js packet manager is needed for executing test scripts. Then the React Boilerplate is installed by cloning react-boilerplate repository. The utility program time is used for measuring time needed to execute the scripts. At first the Droplet performance in running this app’s test suite is compared with default settings through the time npm test. Since npm uses frameworks which can use all kinds of processors a single CPU comparison is also carried out to understand effect of CPU upon the performance.
When worker nodes are matched to the number of CPUs on a server, the fastest execution times can be obtained. The tests carried out reveal that the Optimized Droplet outperforms the Standardized Droplet in every test. When you compare cloud servers to improve the price-to-performance ration it is therefore necessary to test apps which you are planning on running on the servers besides comparing the standard benchmarks. When calculating the execution timings of the app’s automated tests, it was found out that the results improved when the Optimized Droplet is being used. When you have applications which perform in a similar manner and which do not use all CPUs, it is better to opt for the Standard Droplet as it has more memory. But when you run tests sequentially the Optimized Droplet will work faster. For computer-intensive apps using a single CPU this is an important to consider because it is wise to opt for the Optimized Droplet which comes for the exact price as Standardized Droplet. When your app runs in clustered mode with a definite number of CPUs, you can optimize price-to-performance by using the Standardized Droplet which has higher RAM, SSD storage and CPU compared to less numbers of high-end CPUs. For maximizing the price-to-performance of applications it is wise to test different Droplet configurations to calculate the execution timings of the tasks which you run on your servers.