Як я можу контролювати завантаження жорсткого диска в Linux?


101

Чи є хороша утиліта командного рядка для моніторингу завантаження жорсткого диска на Linux? Щось подібне, topале потім моніторинг активності диска iso cpu.

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

Моїм ідеальним інструментом було б щось, що друкує "Ви зараз використовуєте 35% своєї пропускної здатності диска". Будь-які ідеї?


1
Ідеальне питання, саме те, що я шукав =)
— rafa.ferreira

Можна читати sysfs безпосередньо, наприклад /sys/block/sda/stat. Поле №1 дає загальну кількість прочитаних, поле №5 - це загальна кількість записів, поле № 9 - кількість операцій вводу / виводу, що виконується. Детальніше див. У kernel.org/doc/Documentation/iostats.txt Значення довго не підписуються і можуть обертатися.
— зустріч

Це дуже гарне запитання, тому що ми завжди боремося з цією проблемою на серверах Plesk. Однак того, чого не вистачає, є how do you do it with SNMP?. Чудово входити в систему і перевіряти речі, але справді потрібні історичні дані.
— Євген ван дер Мерве

Відповіді:


83

Ви можете отримати досить хороший показник цього за допомогою iostatінструменту.

% iostat -dx /dev/sda 5

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.78    11.03    1.19    2.82    72.98   111.07    45.80     0.13   32.78   1.60   0.64

Використання диска вказано в останній колонці. Це визначено як

Відсоток часу процесора, протягом якого на запит надходили запити вводу / виводу (використання ширини смуги для пристрою). Насиченість пристрою відбувається, коли це значення близько 100%.


3
У якому пакунку цей пристрій знаходиться в Debian, якщо такий є? apt-cache dumpнічого не підходило до іостату
— hBy2Py

9
@Brian: Це в пакеті sysstat (все одно через yum ...)
— Джо

Не вдалося знайти це на RHEL 6.5. Це доступно для RHEL?
— Хазок

Чи може ця робота не продовжуватися із затримкою? Намагаючись запустити один екземпляр, щоб отримати дані, отримує те саме число, імовірно, оскільки він не може брати зразки ???
— Вільф

@Hazok Входить до системи RPM 6.5.
— Загальні

81

iotop - версія верху, яка розглядає, скільки IO використовується кожен процес. Він знаходиться в стандартних сховищах ubuntu; Я не знаю, чи є вона в RHEL чи Fedora, але це має бути.

введіть тут опис зображення

Для старих ядер (скажімо, CentOS 5.x або RHEL 5.x), які не підтримують iotop, використовуйте замість цього topio (задокументовано тут: http://yong321.freeshell.org/freeware/pio.html#linux . Це покладається на / proc // io для статистики io та забезпечує аналогічні функції, як iotop. Детальнішу інформацію див. у посиланні.


1
Дійсно, він не встановлений за замовчуванням в Ubuntu, тому можна випустити: sudo apt-get install iotop, щоб отримати його
— Moshe

1
Для iotop потрібне ядро ​​вище 2.6,20, що, на жаль, виключає і RedHat el4, і el5.
— Дейв Чейні

2
Станом на RedHat 5.4, біти, необхідні для роботи iotop, підтримуються. Насолоджуйтесь!
— Дейв Чейні

Це у Fedora :).
— jamie

13

Як запропонував зустріч у коментарях, ви можете обробити безпосередньо значення, задані в /sys/block/sda/statабо /proc/diskstats. Це може бути корисно, коли жоден з інших згаданих інструментів не доступний і ви не можете їх легко встановити.

Наприклад (IIUC) щось подібне (в баші) повинно давати кількість прочитаних в секунду:

OLD=`awk '{print $1}' /sys/block/sda/stat` # First field is number of read I/Os processed
DT=1
for ii in `seq 1 10`
do
    sleep $DT
    NEW=`awk '{print $1}' /sys/block/sda/stat`
    echo $((($NEW-$OLD)/$DT))
    OLD=$NEW
done

Див. Https://www.kernel.org/doc/Documentation/iostats.txt та https://www.kernel.org/doc/Documentation/block/stat.txt для отримання документації.


7

Ви повинні подивитися на вершину , яка поєднує в собі потужність iotop / top / iftop, все в одному місці, і висвітлює критичні частини вашої системи.


5

Я б рекомендував переглянути інструмент nmon. Він покаже вам навантаження на ряд системних параметрів, а також запис даних у файл для подальшого ознайомлення. Це безкоштовний інструмент, доступний тут :


5

щоб дізнатися, яку загальну пропускну здатність ви можете використати hdparm -T /dev/sdaдля перевірки продуктивності кеш-пам'яті буфера (файлів) hdparm -t /dev/sdaдля перевірки продуктивності читання пристрою

приклади: мій ноутбук отримує 82 Мб / сек з диска SATA і 2 Гб / сек з кеша. Мій dekstop отримує 12 Гб / сек з кешу і 500 МБ / сек з масиву HW RAID. Я підозрюю, що ці останні номери можуть бути подвійними на апаратному рівні серверного класу.

встановити начитаність вище 256, 4096 працює найкраще для мене

for i in 128 256 512 1024 2048 4096 8192 16384 32768  
do  
hdparm --setra $i  
  for j in 1 2 4 8 16 32  
  do  
  time dd if=/dev/sda of=/dev/null bs="$j"k  count=<fixthis> 1GB / blocksize  
  done  
done  

разів зчитування 1 Гб при різних розмірах блоку та різних зчитуваннях


Ласкаво просимо в SF. Ви можете використовувати підсвічування коду у своїх публікаціях, додаючи зворотні цитати навколо рядків або абзаців з відступами.
— phaphink

Дві речі - 1) --setraє зараз -a, і 2), hdparm -{T,t}команди видають лише зчитування диска, відповідно strace, тому не є руйнівними. (Застосовується стандартна відмова від відповідальності щодо порад в Інтернеті)
— i336_

4

Стандартним інструментом для відображення навантаження на жорсткий диск є iostat.

Він не скаже вам, який відсоток пропускної здатності диска ви використовуєте, оскільки він не знає, яку пропускну здатність має ваш диск. У будь-якому випадку, на вашому диску є лише цитувана цифра виробника для великих передач суміжних даних.


3

Я думаю, що RRDtool повинен робити все, що ви хочете, тут він використовує демон для скидання системних даних, а потім дозволяє обробляти їх, як завгодно. Я часто використовував його для виготовлення графіків тощо для вимірювання завантаження системи.

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