(Хлопець Windows запитує) Вимірювання затримки диска в Linux: Чи я морочусь?


11

У Windows, коли я хочу перевірити / підтвердити, що можуть виникати проблеми, пов’язані з IO, у томі, на якому працює база даних або інша програма з низькою затримкою, я перевіряю затримку на диску.

Якщо я бачу середній диск / лічильник передач Windows > 18-20 мс послідовно, то моя канарка у вугільній шахті просто загинула, і мені потрібно далі дослідити. Бездоганний простий.

Зараз я переглядаю Linux і не бачу подібної метрики на основі затримки. Швидке дослідження, яке я зробив, вказує на те, що я навіть не хотів би бачити ... Я бачу, що багато посилань на введення-виведення чекають, як це відстежують більшість людей.

Чи існує правило, яке ви використовуєте для цього? Наприклад, ЯКЩО я чекаю, коли я бачу поганий обсяг бази даних? Чи є проста команда iostat, яка дає мені кращий погляд на загальний стан диска, аніж просто очне яблуко TOP?

Велике спасибі!


4
Ви можете подивитисяioping
ewwhite

Дякую, @ewwhite Я думаю, мені просто цікаво, чи потрібно мені повністю змінити фокус, а замість цього слідкувати за іншим способом?
Рассел Крістофер

2
Увімкніть збирання sysstat у ваших системах. Потім ви можете вивчити відсоток процесора iowait, що дуже корисно для діагностики сповільненої IO повільності.
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 це основний показник, який я використовую для перегляду диска під виробничими навантаженнями, щоб побачити, чи здатна його пропускна здатність та iops бути в курсі попиту.

% Iowait stat - це більше про баланс між процесором та використанням диска. % IOSTAT залишатиметься нижче , ніж очікувалося , якщо і процесор , і активність диска високі. З іншого боку, починаючи з досить низького рівня використання диска,% iostat може бути відносно високим, якщо процесор простоює. Це, як сказано, очікує, що потрібно вживати разом із зерном солі. Якщо відбувається багато послідовного читання / запису, це перетворить фігуру на нижчу величину, і ваше правило 18 ~ 20 мс не буде корисним за цих умов, оскільки більшість фрагментів, що записуються, будуть послідовними даними та будуть обслуговуватися на диску дуже швидко, в той час як інший випадковий io буде чекати, завдяки вбудованій на диск системі Native-Command-Queuing (NCQ) для оптимізації пропускної здатності, дозволяючи диску вибирати послідовність, яку запити обслуговують.


Дякуємо @ beowulfNode42. Це основний показник, який ви використовуєте з точки зору "поганого диска"? Нова Relic, здається, зосереджена на відсотках очікування вводу / виводу та використання диска (читання та записування) ... Це змушує мене замислитися, чи я переслідую неправильну метрику, чи вони просто повідомляють про менш корисну інформацію ....
Рассел Крістофер

@RussellChristopher інша статистика надає необхідний контекст, в якому інтерпретувати інформацію, що очікує. наприклад, чи багато іопів (r / і w / s), багато MB / s, чи є розмір середнього запиту (avgrq-sz) великим чи малим, і який розмір середньої черги (avgqu-sz). Так, разом із метрикою, пов'язаною з процесором% iowait,% user,% system тощо, щоб побачити, чи диск уповільнює процесор чи навпаки.
BeowulfNode42
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.