Назад | Перейти на главную страницу

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

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

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

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

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

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

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

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

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

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

Из man iostat страница

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

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

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