Як я можу стежити за диском io?


267

Я хотів би зробити якийсь загальний моніторинг дискового io на сервері debian linux. Які інструменти я повинен знати щодо цього дискового монітора io, щоб я міг побачити, чи продуктивність диска максимізована чи зростає протягом певного часу протягом дня?


Відповіді:


225

У тренді вводу / виводу диска є кілька варіантів. Мій особистий фаворит - sarкоманда від sysstat. За замовчуванням він дає такий вихід:

09:25:01 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
09:35:01 AM     all      0.11      0.00      0.01      0.00      0.00     99.88
09:45:01 AM     all      0.12      0.00      0.01      0.00      0.00     99.86
09:55:01 AM     all      0.09      0.00      0.01      0.00      0.00     99.90
10:05:01 AM     all      0.10      0.00      0.01      0.02      0.01     99.86
Average:        all      0.19      0.00      0.02      0.00      0.01     99.78

%iowaitЧас , витрачений на очікування на I / O. Використовуючи пакет Debian, ви повинні ввімкнути збірник stat через /etc/default/sysstatконфігураційний файл після встановлення пакета.

Щоб побачити поточне використання, розбите на пристрої, ви можете використовувати iostatкоманду також із пакету sysstat:

$ iostat -x 1
Linux 3.5.2-x86_64-linode26 (linode)    11/08/2012      _x86_64_        (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.84    0.00    0.08    1.22    0.07   97.80

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
xvda              0.09     1.02    2.58    0.49   112.79    12.11    40.74     0.15   48.56   3.88   1.19
xvdb              1.39     0.43    4.03    1.82    43.33    18.43    10.56     0.66  112.73   1.93   1.13

Деякі інші параметри, які можуть показувати використання диска в тренд-графіках, - це мунін та кактуси .


Мунін або кактуси - це більше те, що я шукаю. Дякую за покажчики
camomileCase

6
Зауважте, що% iowait показує лише час, коли ядру не залишалося нічого іншого, як чекати IO. На 100% пов'язаному з процесором сервері це буде нульове значення, незалежно від того, скільки IO він робить.
Юрген Стробель

іостат -x dm-0 | греп пристрій; іостат -xd 2 -y dm-0 | grep dm-0
Хуан Медіна

104

Погляньте на йотоп.

Або йодумп, якщо це більше зменшує ваш спосіб мислення.

Примітка. Для роботи потрібно принаймні ядро 2.6.20 .


Це не лише Linux, але також потребує більш нового (або виправленого) ядра.
Йорданм

Вони добре виглядають, щоб дізнатися, що відбувається зараз, але я шукаю більш широкого моніторингу зображення.
camomileCase

8
@camomileCase - ви цього не вказали у своєму питанні ...
подумайте

90

Мені подобається dstat. Він може показувати підсумки та статистику на диску та навіть md-пристрої (RAID), а також може використовувати кольори для кращого огляду:

$ dstat -tdD total,sda,sdb,sdc,md1 60 
----system---- -dsk/total----dsk/sda-----dsk/sdb-----dsk/sdc-----dsk/md1--
     time     | read  writ: read  writ: read  writ: read  writ: read  writ
08-11 22:08:17|3549k  277k: 144k   28k: 851k   62k: 852k   60k:  25k   82k
08-11 22:09:17|  60k  258k:1775B   15k:  13k   63k:  15k   60k:  68B   74k
08-11 22:10:17| 176k  499k:   0    14k:  41k  122k:  41k  125k: 273B  157k
08-11 22:11:17|  42k  230k:   0    14k:9830B   54k:  14k   51k:   0    70k
08-11 22:11:52|  28k  132k:   0  5032B:5266B   33k:9479B   28k:   0    37k
  • -t для міток часу
  • -d для дискової статистики
  • -D щоб вказати точні пристрої для звітування
  • 60в середньому за 60 секунд. Дисплей оновлюється щосекунди, але лише раз на 60 секунд буде запущено новий рядок.

  • не використовується в цьому прикладі, але -cможе повідомити про відсоток очікування очікування, який у більшості випадків пов'язаний з процесором, який очікує на дані з дисків.

Він доступний для більшості дистрибутивів Linux, але іноді потребує встановлення із сховищ.


49

Просто з файлів на вашому комп'ютері (передбачається , що недавнє ядро) , ви можете запитати /sys/block/sda/statабо /proc/diskstats. Однак знадобиться певний переклад. Але це приємно для швидкої та брудної перевірки.


22
/sys/block/sda/statзадокументовано на https://www.kernel.org/doc/Documentation/block/stat.txt
ignis

10
/proc/diskstatsзадокументовано на kernel.org/doc/Documentation/iostats.txt
Rikard Söderström

2
Великою перевагою цієї відповіді є те, що ніяких інструментів не потрібно встановлювати. Просто там. (Потенційно :-)
Ben Aveling

2
наприклад, відлуння "читати іо злиття секторів кліщів писати іо злиття секторів тиків літати йотик timeinqueu"; cat / sys / block / vda / vda1 / stat; сон 10; cat / sys / block / vda / vda1 / stat
Бен Авелінг

35

Іншим варіантом є використання: sudo iotop -aoP

-a    Will show accumulated output
-o    Will only output 
-P    Will only show processes instead of threads

Ця програма розповість, скільки процес записав на диск і прочитав з диска з моменту запуску iotop.


Я чую щось, що отримує доступ до диска, але накопичений вихід збільшується дуже повільно, іноді зовсім не за секунду ... ???
Майкл

Якщо ви чуєте диск, він, ймовірно, старий і / або повільний. Сучасні жорсткі диски, як правило, дуже тихі. Які звуки видає? Використовуйте, smartctlщоб побачити, чи здоровий диск.
rudolfbyker

8

Моніторинг диска Io може здійснюватися за допомогою декількох інструментів, таких як наступний.

  1. Іостат
  2. Іозона
  3. SAR
  4. vmstat

Крім того, деякі важливі концепції операційної системи дуже потрібні для їх осмислення. Читайте повний підручник з Linux IO


2
Іозона призначена для тестування, а не для моніторингу: "Iozone - це інструмент орієнтиру файлової системи. Тест генерує та вимірює різні файлові операції."
Ендрю Білс

7

Ще один чудовий інструмент для швидкого огляду, звідки походить навантаження atop

Він може показати вам огляд усіх ресурсів (процесор, пам'ять / своп, мережевий та дисковий введення / виведення) або ви можете перейти до одного ресурсу і сортувати процеси за кількістю споживаних.


5

Чому б не спробувати nmon . Це диски та мережа з процесами. Спочатку для AIX, але він переноситься на Linux вже кілька років.


1

Найкраще зробити, якщо ви хочете бачити продуктивність протягом тривалого періоду, - це використовувати Centreon, який є потужним інструментом, побудованим на Nagios . Centreon дозволяє вам контролювати, малюючи графіки продуктивності ресурсу та багато іншого.


Які ще речі? Будь-які скріншоти? Будь ласка, розгорніть свою відповідь.
Конрад Гаєвський
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.