У меня есть intel ssd(серия 530, 480gb). Данные с сайта intel:
Последовательное чтение - 540 МБ/с
Последовательная запись - 490 МБ/с
Случайное чтение - 48000 IOPS
Случайная запись - 80000 IOPS
Текущая нагрузка составляет около 5000 iops, 50 мбайт/сек чтения, 1 мбайт/сек записи. Диск используется для базы данных. Плагин Munin "disk usage" показывает 50% использования. Согласно тесту, munin вычисляет его правильно.
Как рассчитать загрузку диска на основе текущих показателей операций ввода-вывода, скорости чтения и записи?
решение1
Из исходного кода плагина diskstats следует, что munin вычисляет процент использования диска, просматривая общее время, потраченное на выполнение операций ввода-вывода за заданный период мониторинга. Если устройство тратит все свое время на выполнение операций ввода-вывода, то оно загружено на 100%. Это несколько независимо от фактических IOPS и скоростей чтения/записи, поскольку они будут иметь очень зависимый от шаблона доступа эффект. (Я предполагаю, что вы на самом деле спрашиваете, как munin вычисляет процент использования, а не как конкретно использовать IOP и размеры чтения/записи для вычисления того же самого)
Munin берет эти данные из /proc/diskstats. Рассматриваемый столбец — это 10-е поле после имени устройства (и munin делает обычную вещь: сохраняет значение при первом чтении, а при втором чтении вычисляет разницу между старым и новым значениями, чтобы вычислить дельту за период мониторинга).
Документация по /proc/diskstats доступназдесь