Назад | Перейти на главную страницу

Как найти хорошую статистику состояния io?

Я хотел бы отслеживать активность дискового ввода-вывода на случай, если что-то приведет к тяжелому вводу-выводу. это Плагин Nagios прост, где он приводит примеры

Example: Tps, read and write thresholds:
    ./check_diskstat.sh -d sda -w 200,100000,100000 -c 300,200000,200000

Example: Average queue length threshold:
    ./check_diskstat.sh -d sda -W 50 -C 100

Вопрос

Поскольку разные хосты будут иметь разные операции ввода-вывода в режиме ожидания, как мне найти подходящие начальные значения для использования?

Думаю, еще один способ спросить о том же: какой iostat аргументы, которые следует использовать на каждом хосте, чтобы увидеть, каков его ввод-вывод в "хорошем состоянии"?

Основные счетчики задокументированы в https://www.kernel.org/doc/Documentation/block/stat.txt

Установка значимых пороговых значений на основе абсолютного количества операций ввода-вывода в секунду и секторов, считываемых или записываемых на блочное устройство (строчные буквы -w и -c options) требует априорных знаний о фактических возможностях этого конкретного блочного устройства (например, путем их тестирования).

Используя длину очереди (ВЕРХНИЙ регистр -W и -C options) кажется более универсальным. Когда вы получаете увеличенную очередь ввода-вывода, что плохо, независимо от того, насколько быстро базовое хранилище, вы отправляете больше операций чтения / записи, чем оно может поддерживать, и ваши приложения будут замедляться.

Я понятия не имею, являются ли задокументированные 50 и 100 миллисекунд разумными или полностью произвольными значениями.


Для моих виртуальных серверов использовать абсолютные числа относительно просто, они предоставляются в различных вариантах с конкретные ограничения и мне нужно было бы только установить уровни предупреждения / критического уровня, например, на 80% или 95% от назначенных пределов.

Например, со вкусом 600 IOPS и 10 МБ / с:

Разделить назначенное disk_read_bytes_sec и disk_write_bytes_sec на 512 (размер сектора), чтобы получить ограничения в секторах, которые поддерживает виртуальный диск. (10 MB = 10000000 bytes) / 512 = 19531
19531 * 80% = 15624 и 600 * 80% = 480
19531 * 95% = 18749 и 600 * 95% = 570

./check_diskstat.sh -d vda -w 480,15624,15624 -c 570,18749,18749