Як я можу контролювати завантаження жорсткого диска в 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.