Я хотел бы отслеживать активность дискового ввода-вывода в случае, если что-то вызывает тяжелые операции ввода-вывода. Этот плагин 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
вопроса
Поскольку разные хосты будут иметь разные операции ввода-вывода в режиме ожидания, как мне найти подходящие начальные значения для использования?
I угадайте, другой способ задать то же самое: какие iostat
аргументы следует использовать на каждом хосте, чтобы узнать, в каком "хорошем состоянии" дисковый ввод-вывод?
. Базовые счетчики задокументированы в https://www.kernel.org/doc/Documentation /block/stat.txt
Установка значимых пороговых значений на основе абсолютного количества операций ввода-вывода в секунду и секторов, считываемых или записываемых на блочное устройство (параметры в нижнем регистре -w
и -c
) требует априорных знаний о фактических возможностях этого конкретного блочного устройства (например, путем их тестирования).
Использование длины очереди (варианты ВЕРХНЕГО регистра -W
и -C
) кажется более универсальным. Когда вы получаете увеличенную очередь ввода-вывода, что плохо, независимо от того, насколько быстро базовое хранилище, вы отправляете больше операций чтения / записи, чем оно может поддерживать, и ваши приложения будут замедляться.
Я понятия не имею, являются ли задокументированные 50 и 100 миллисекунд разумными или полностью произвольными значениями.
Для моих виртуальных серверов использовать абсолютные числа относительно легко, они предоставляются в различных вариантах с конкретными ограничениями и мне нужно было бы только установить уровень предупреждения / критического уровня, например, на 80% и 95% от назначенных пределов.
Например, с версией 600 IOPS и 10 МБ / с:
Разделите назначенные disk_read_bytes_sec
и disk_write_bytes_sec
на 512 (размер сектора), чтобы получить ограничения в секторах виртуальный диск будет поддерживать. (10 МБ = 10000000 байт)/ 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