What I really like about VPS providers these days is ability to spin up an instance, and test if it’s good by measuring hardware performance. I would then discard it or proceed with it on permanent basis based on performance level. All major cloud providers (DigitalOcean, Linode, Vultr VPS) allow you to test them with their per-hour billing model. And this is great!
But how do you test performance of a VPS in a reliable way?
First, sign up for any of the hosting providers mentioned. Next, create a new VPS with the lowest RAM amount available.
All the testing is done via SSH. Once you are logged in as root user, you can test the performance of disk, RAM, and CPU.
Test SSD Disk performance
With modern PHP frameworks (WordPress can be considered as one), consisting of hundreds of small PHP files, it is extremely important to run the server off an SSD drive. Many hosting providers advertise SSD in their plans. But you may still find your site running slow. Common reason? Yes, they lied to you and they actually installed a regular SATA drive. You can test SSD existence and speed by running a simple test:
dd if=/dev/zero of=sb-io-test bs=1M count=1k conv=fdatasync; rm -rf sb-io-test
This will show you the speed of accessing the drive. If you find the number below 150 MB/s, be certain that it is not an SSD drive. If it is below 50 MB/s, it is a SATA drive that is having problems.
Upon running the test on a few VPS providers, I found that Linode is the fastest provider with real SSD performance: 700 MB/sec.
Test CPU performance
Install SysBench utility. For example, on CentOS/RHEL system:
sudo yum -y install epel-release
sudo yum -y install sysbench
Run the actual test with:
sysbench cpu --threads=$(nproc) run
Look at “events per second”. The higher the better.
Test RAM performance
You can also use SysBench for testing RAM performance:
sysbench --test=memory --memory-total-size=1G run