В Windows всякий раз, когда я хочу проверить / подтвердить, что могут быть проблемы, связанные с IO, на томе, на котором живет база данных или другое приложение с низкой задержкой, я проверяю задержку диска.
Если я постоянно вижу счетчик Windows Average Disk sec / Transfer > 18-20 мс, то моя канарейка в угольной шахте только что умерла, и мне нужно продолжить расследование. Офигительно просто.
Сейчас я смотрю на Linux и не вижу аналогичного показателя, основанного на задержке. Быстрое исследование, которое я провел, показывает, что я, возможно, даже не ХОЧУ ... Я вижу много ссылок на I / O Wait, как большинство людей отслеживают это.
Есть ли приблизительное правило, которое вы используете в отношении этого? Например, ЛЮБОЕ ожидание ввода-вывода, которое я вижу плохо для объема базы данных? Есть ли простая команда iostat, которая дает мне лучший взгляд на общее состояние диска, чем просто взгляд TOP?
Спасибо большое!
ioping
sar
вывода здесь . Обратите внимание на%iowait
колонку.Ответы:
Лично я использую команду
iostat -xk 10
и смотрю наawait
колонку.Эта метрика практически идентична метрике Windows « Средний диск / передача» и отображается в мс, а не в секундах. Таким образом, можно применить аналогичные эмпирические правила, хотя это будет зависеть от всех видов вещей. Я обычно нахожу, что пользователи начинают ворчать с 15 мс, а 20 мс - это очень плохо.
Нажмите ctrl + c, чтобы выйти, или укажите количество итераций для просмотра с помощью параметра count. Обратите внимание, что результат первой итерации сильно искажен из-за небольшой временной выборки, использованной в первой итерации.
Со
man iostat
страницыawait Среднее время (в миллисекундах) для запросов ввода-вывода, выданных устройству для обслуживания. Это включает время, потраченное запросами в очереди, и время, потраченное на их обслуживание.
Редактировать:
await
это основной показатель, который я использую для наблюдения за диском в условиях рабочей нагрузки, чтобы увидеть, может ли его пропускная способность и iops соответствовать требованиям.% Iowait stat больше касается баланса между процессором и использованием диска. % IOSTAT будет оставаться ниже , чем ожидалось , если и процессор , и активность диска высоки. С другой стороны, начиная с довольно низких уровней использования диска,% iostat может быть относительно высоким, если процессор простаивает. Это сказанное ожидание должно быть взято с зерном соли также. Если происходит большое количество последовательных операций чтения / записи, это приведет к искажению значения до меньшего значения, и ваше практическое правило 18 ~ 20 мсек не будет полезным в этих условиях, поскольку большинство записываемых фрагментов будут последовательными данными и будут обслуживаться. очень быстро, в то время как другие случайные операции ввода-вывода будут ожидать, благодаря встроенной в диск системе Native-Command-Queuing (NCQ) для оптимизации пропускной способности, позволяя диску выбирать последовательность, в которой обрабатываются запросы.
источник