MAATRIX / Блог / Что такое IOPS и почему они решают

Что такое IOPS и почему они решают

Блог MAATRIX · 2026-07-07

IOPS — самый важный и самый недооценённый параметр диска. Именно в него упираются базы данных и нагруженные сайты, а не в красивые гигабайты в секунду. Разберём, что это, чем отличается от линейной скорости и как измерить.

IOPS простыми словами

['IOPS (Input/Output Operations Per Second) — число операций ввода-вывода в секунду, которые диск успевает обработать. Одна операция — это одно чтение или запись небольшого блока данных. Если МБ/с отвечает на вопрос «сколько данных за секунду», то IOPS — «сколько отдельных обращений к диску за секунду».', 'Разница принципиальна. Скопировать один фильм на 5 ГБ — это линейная нагрузка, тут важны МБ/с. А вот база данных, отвечая на запрос, делает сотни мелких случайных чтений в разных местах диска — тут важен именно IOPS. Реальный сервер почти всегда работает во втором режиме.']

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.

Арендовать VPS с высоким IOPS

Почему база данных упирается в IOPS

['Представьте базу с миллионом строк. Пользователь запрашивает несколько записей по индексу. Диску приходится прыгать в разные физические места и читать много мелких блоков. Это классическая случайная нагрузка — здесь важно, сколько отдельных операций в секунду вытянет накопитель.', 'На HDD, который даёт ~150 случайных IOPS, база под нагрузкой встаёт в очередь: головке физически нужно доехать до каждого блока. На NVMe, где счёт идёт на сотни тысяч IOPS, те же запросы обслуживаются практически мгновенно. Поэтому перенос базы с HDD на NVMe часто ускоряет приложение в разы — без единой правки кода. В MAATRIX диски NVMe, и это убирает типичное узкое место баз.']

Случайные и последовательные операции

['IOPS всегда указывают с уточнением: случайные (random) или последовательные (sequential), чтение или запись, и с каким размером блока (обычно 4К для баз). Это не мелочь — цифры отличаются в разы.', '
  • Последовательное чтение — данные лежат подряд, диск читает их потоком. Максимальные МБ/с.
  • Случайное чтение 4К — обращения разбросаны по диску. Здесь виден настоящий потолок IOPS.
  • Случайная запись — самая тяжёлая нагрузка, особенно для баз с частыми апдейтами.
', 'Когда провайдер или производитель называет «миллион IOPS», уточняйте условия. Часто это идеальный последовательный сценарий, а реальная случайная нагрузка даёт цифру скромнее.']

Как измерить IOPS на своём VPS

['Точный инструмент — fio. Измерим именно случайное чтение блоками 4К, как работает база. Тест создаст временный файл, поэтому запускайте его в разделе с достаточным местом:', '
sudo apt update && sudo apt install -y fio\nfio --name=iops-test --filename=./fiotest --size=1G \\\n  --rw=randread --bs=4k --direct=1 --ioengine=libaio \\\n  --iodepth=64 --numjobs=1 --runtime=30 --time_based\nrm -f ./fiotest
', 'В выводе ищите строку read: IOPS=... — это и есть число случайных операций в секунду. Для оценки записи поменяйте --rw=randread на --rw=randwrite. На NVMe вы увидите десятки и сотни тысяч, на HDD — сотни.']

IOPS, латентность и глубина очереди

['У IOPS есть спутник — латентность, задержка отдельной операции. Высокий IOPS при низкой задержке — идеал. Иногда диск выдаёт большой IOPS только при огромной глубине очереди (iodepth), но каждая операция при этом ждёт долго. Для интерактивных задач важна именно низкая задержка одиночной операции.', '
# та же fio, но смотрим latency в выводе\n# строки clat/lat показывают задержку в микро/миллисекундах\nfio --name=lat --filename=./ft --size=512M --rw=randread \\\n  --bs=4k --direct=1 --ioengine=libaio --iodepth=1 \\\n  --runtime=20 --time_based\nrm -f ./ft
', 'При iodepth=1 вы видите честную задержку одной операции. У NVMe она — десятки микросекунд, у HDD — миллисекунды, то есть в сотни раз выше.']

Частые ошибки

['
  • Смотреть только на МБ/с — реальный сервер живёт на случайных IOPS, а не на линейной скорости.
  • Не уточнять условия теста — «миллион IOPS» без указания блока и режима ничего не значит.
  • Держать базу на HDD — гарантированная очередь и тормоза под нагрузкой.
  • Игнорировать латентность — высокий IOPS при большой задержке не спасёт интерактивную задачу.
', 'Если приложение тормозит и вы видите высокий iowait в top — почти наверняка не хватает IOPS. Переезд на NVMe (как в MAATRIX) решает это радикальнее, чем добавление ядер.']

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.

Арендовать VPS с высоким IOPS

Частые вопросы

Чем IOPS отличается от МБ/с?

МБ/с — объём данных в секунду при линейной нагрузке. IOPS — число отдельных операций в секунду при случайной. Серверу важнее IOPS.

Сколько IOPS нужно базе данных?

Зависит от нагрузки, но HDD с его ~150 IOPS почти всегда мало. NVMe даёт десятки-сотни тысяч, чего хватает большинству баз с запасом.

Как измерить IOPS на VPS?

Используйте fio с параметрами --rw=randread --bs=4k --direct=1. Строка read: IOPS=... в выводе покажет число случайных операций в секунду.