(Парень из Windows спрашивает) Измерение задержки диска в Linux: я беспокоюсь?

11

В Windows всякий раз, когда я хочу проверить / подтвердить, что могут быть проблемы, связанные с IO, на томе, на котором живет база данных или другое приложение с низкой задержкой, я проверяю задержку диска.

Если я постоянно вижу счетчик Windows Average Disk sec / Transfer > 18-20 мс, то моя канарейка в угольной шахте только что умерла, и мне нужно продолжить расследование. Офигительно просто.

Сейчас я смотрю на Linux и не вижу аналогичного показателя, основанного на задержке. Быстрое исследование, которое я провел, показывает, что я, возможно, даже не ХОЧУ ... Я вижу много ссылок на I / O Wait, как большинство людей отслеживают это.

Есть ли приблизительное правило, которое вы используете в отношении этого? Например, ЛЮБОЕ ожидание ввода-вывода, которое я вижу плохо для объема базы данных? Есть ли простая команда iostat, которая дает мне лучший взгляд на общее состояние диска, чем просто взгляд TOP?

Спасибо большое!

Рассел Кристофер
источник
4
Вы можете посмотретьioping
17
Спасибо, @ewwhite. Думаю, мне просто интересно, нужно ли мне полностью изменить фокус и вместо этого контролировать это по-другому, понимаете?
Рассел Кристофер
2
Включите сборку sysstat в ваших системах. Затем вы можете проверить процент загрузки процессора iowait, что очень полезно для диагностики медлительности, связанной с вводом-выводом.
EEAA
2
@RussellChristopher Вы можете увидеть пример sarвывода здесь . Обратите внимание на %iowaitколонку.
EEAA
@Matt, хотя он ОЧЕНЬ похож, фокус немного другой. Этот QA больше ориентирован на выполнение тестов в моделируемой среде, где этот Q, кажется, больше касается мониторинга текущей производительности в производственной среде.
BeowulfNode42

Ответы:

12

Лично я использую команду iostat -xk 10и смотрю на awaitколонку.

  • -x Показать расширенную статистику.
  • -k Показать статистику в килобайтах в секунду. Или используйте m для мегабайт / с.
  • 10 интервал отображения в секундах

Эта метрика практически идентична метрике Windows « Средний диск / передача» и отображается в мс, а не в секундах. Таким образом, можно применить аналогичные эмпирические правила, хотя это будет зависеть от всех видов вещей. Я обычно нахожу, что пользователи начинают ворчать с 15 мс, а 20 мс - это очень плохо.

Нажмите ctrl + c, чтобы выйти, или укажите количество итераций для просмотра с помощью параметра count. Обратите внимание, что результат первой итерации сильно искажен из-за небольшой временной выборки, использованной в первой итерации.

Со man iostatстраницы

await Среднее время (в миллисекундах) для запросов ввода-вывода, выданных устройству для обслуживания. Это включает время, потраченное запросами в очереди, и время, потраченное на их обслуживание.

Редактировать: await это основной показатель, который я использую для наблюдения за диском в условиях рабочей нагрузки, чтобы увидеть, может ли его пропускная способность и iops соответствовать требованиям.

% Iowait stat больше касается баланса между процессором и использованием диска. % IOSTAT будет оставаться ниже , чем ожидалось , если и процессор , и активность диска высоки. С другой стороны, начиная с довольно низких уровней использования диска,% iostat может быть относительно высоким, если процессор простаивает. Это сказанное ожидание должно быть взято с зерном соли также. Если происходит большое количество последовательных операций чтения / записи, это приведет к искажению значения до меньшего значения, и ваше практическое правило 18 ~ 20 мсек не будет полезным в этих условиях, поскольку большинство записываемых фрагментов будут последовательными данными и будут обслуживаться. очень быстро, в то время как другие случайные операции ввода-вывода будут ожидать, благодаря встроенной в диск системе Native-Command-Queuing (NCQ) для оптимизации пропускной способности, позволяя диску выбирать последовательность, в которой обрабатываются запросы.

BeowulfNode42
источник
Спасибо @ beowulfNode42. Это основная метрика, которую вы используете с точки зрения «плохого диска»? Новая Relic, кажется, фокусируется на процентах ожидания ввода-вывода и использования диска (чтение и запись) ... Это заставляет меня задуматься, преследую ли я неправильную метрику, или ОНИ просто сообщают о менее полезной информации ....
Рассел Кристофер
@RussellChristopher остальные статистические данные обеспечивают необходимый контекст для интерпретации ожидаемой информации. например, много ли iops (r / и w / s), много МБ / с, большой или маленький размер запроса avg (avgrq-sz), и каков размер очереди avg (avgqu-sz). Да, вместе с показателями, связанными с процессором,% iowait,% user,% system и т. Д., Чтобы увидеть, замедляет ли процессор процессор или наоборот.
BeowulfNode42