Диск

Что такое IOPS?

Также известно как: input/output operations per second
Определение

IOPS measures how many individual read or write operations a storage device completes per second. Random 4K IOPS at a queue depth of one is the number that predicts database behaviour; sequential throughput is the number that appears in marketing.

Почему IOPS важен

Случайные IOPS при размере блока 4K и глубине очереди 1 — это показатель, предсказывающий поведение базы данных; последовательная пропускная способность — это цифра, которая фигурирует в маркетинге.

IOPS на практике

Когда вы реально запускаете сервер, IOPS — это то, за чем вы следите, когда запросы замедляются. Вы смотрите на задержку случайного чтения 4K в вашей базе данных и определяете, не диск ли является узким местом. Если да — переходите на NVMe или добавляете диски. Если игнорировать, приложение будет ползти под нагрузкой, и каждый медленный запрос стоит вам пользователей. Вы можете изменить конфигурацию хранилища, но это не мгновенно: переход на уровень ниже требует пересборки, а дополнительный NVMe подключается как второе блочное устройство. Если ошибиться, сервер быстрый в тестах, но падает в продакшене.

Что люди часто понимают неправильно в отношении IOPS

Заблуждение состоит в том, что IOPS — это фиксированное число. Это не так; оно зависит от глубины очереди и размера блока. Диск может заявлять высокие IOPS при больших глубинах очереди, но для баз данных важен случайный доступ 4K при глубине очереди, равной единице. Исправление: если сравнивать хранилища по маркетинговым цифрам, вы выберете не то устройство. Смотрите на показатель при глубине очереди, равной единице.

IOPS — частые вопросы

Какую глубину очереди использовать для тестирования IOPS?

Для рабочих нагрузок баз данных используйте глубину очереди, равную единице. Именно этот показатель предсказывает реальное поведение, потому что большинство OLTP-запросов выполняют одиночные независимые чтения. Более высокие глубины очереди могут завышать цифры IOPS, но не отражают то, как ваша база данных на самом деле обращается к диску.

Чем IOPS отличается от пропускной способности?

IOPS считает отдельные операции в секунду; пропускная способность измеряет байты в секунду. Последовательная передача, например резервное копирование, может достигать высокой пропускной способности, но низких IOPS, в то время как база данных выполняет множество небольших случайных чтений, поэтому IOPS имеют большее значение. В маркетинге часто цитируют последовательный показатель.

Больше из раздела «диск»

NVMe
NVMe — это протокол хранения данных, который подключает твердотельные накопители напрямую через PCIe, достигая примерно 500 000 случайных операций ввода-вывода в секунду с задержкой менее 100 микросекунд.
RAID 10
RAID 10 зеркалирует данные на парах дисков и чередует по зеркалам, обеспечивая как избыточность, так и высокую производительность, но за счёт половины полезной ёмкости.
Snapshot
Снимок — это копия диска виртуальной машины на определённый момент времени, создаваемая мгновенно и хранящаяся на той же инфраструктуре.