IOPS – the name of the group of performance indicators of the disk subsystem, which stands for Input/output Operations Per Second and it’s 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 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) gives IOPS values ​​that differ by an order of magnitude.

This is how stable IOPS look like:

Stable IOPS performance

And a not stable IOPS performance:

Not stable IOPS benchmark

Also, take a note on a limited IOPS benchmark:

Limited IOPS performance

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, which does 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, and which are therefore difficult to catch, it is better to control IOPS indicators.

To see how intensively your site is working with 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 disk. And this is an SSD. There could well be a 504 error on a slow disk or with a serious limit on read speed.

When renting inexpensive VPS, it makes sense to check the drive (and of crouse, avoid EIG servers). For a high-quality VPS hosting server, look into our DreamHost hosting review, SiteGround hosting review, and VeeroTech hosting review.

Johnny McKinsey
Follow me