Как найти хорошую статистику состояния 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

вопроса

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

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

1
задан 24 May 2018 в 16:08
1 ответ

. Базовые счетчики задокументированы в 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
1
ответ дан 3 December 2019 в 23:15

Теги

Похожие вопросы