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