IOPS – the name of the group of performance indicators of the disk subsystem, which stands for Input/output Operations Per Second, and its meaning is exactly as the definition – the number of input/output operations per second.
It’s important to note that it’s a predefined value by the web hosting you use, which enforces the number of input and output operations that are allowed on your hosting server at once. If the allowed threshold is reached, throttling of your server requests will start which in turn, will cause a general slowness t your site performance.
One operation refers to reading or writing a file system block (a file system consists of blocks of a fixed length, for example, 4 kilobytes, and large files consist of many blocks).
Another important indicator is latency (delay, the time it takes to complete one operation, measured in milli-or even microseconds).
On VPS and dedicated servers, there is an opportunity to evaluate these indicators. Sometimes similar configurations (for example, 1 core 2 GHz, 2 GB of RAM) give IOPS values that differ by an order of magnitude.
This is what stable IOPS look like:
And a not stable IOPS performance:
Also, take a note of a limited IOPS benchmark:
How essential is it for sites and web applications? The answer is not entirely obvious.
Modern sites are systems with a multilayer cache (OS, DBMS, programming language interpreter caches, application-level caches). If you look superficially at disk activity while running some popular CMS, then reading may not be there at all. All that is needed to generate the page is already in RAM. This is normal, and IOPS and latency seem to be less important.
But here are some cases where disk activity can be observed:
- Separate service or the entire server after a reboot when the cache is not “warmed up”.
- Large database when not everything fits in buffers and cache.
- Lots of statics, do not fit in RAM.
- Sites with user authorization and personalized pages when the cache efficiency is low.
- Pages with heavy SQL queries spanning large data sets.
- Creating backups.
- Lack of RAM, fast cache flushing.
If you don’t want to encounter this slowness from time to time on different pages, which are therefore difficult to catch, it is better to control IOPS indicators.
To see how intensively your site is working with the disk, you can use the iotop program. Installation on Debian will look as follows:
apt-get update apt-get install iotop
You can call it like this which will show only processes using the disk and update data every two seconds:
iotop -o -d 2
Here is an example site where everything is in the cache:
Particular attention should be paid to the IO column – this is the fraction of the process execution time spent on disk operations. In the case shown, nothing is read from the disk, but only slightly written to the CMS database (perhaps the session information is updated, and something is logged).
And here is a heavy page:
The script was executed for several seconds, while almost 40% of the time was read from the disk. And this is an SSD. There could well be a 504 error on a slow disk or with a serious limit on reading speed.
When renting inexpensive VPS, it makes sense to check the drive (and of course, avoid EIG servers). For a high-quality VPS hosting server, look into our DreamHost hosting review, SiteGround hosting review, and VeeroTech hosting review.