Я хотел бы отслеживать активность дискового ввода-вывода на случай, если что-то приведет к тяжелому вводу-выводу. это Плагин 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