Jak mogę monitorować dysk io?

267

Chciałbym przeprowadzić ogólne monitorowanie dysku na serwerze debian linux. Jakie narzędzia powinienem wiedzieć o tym dysku monitora io, aby sprawdzić, czy wydajność dysku jest maksymalna, czy też wzrasta w określonym czasie w ciągu dnia?

rumianek
źródło
4
serverfault.com/questions/9428/… || superuser.com/questions/115358/...
Ciro Santilli 18 改造 中心 法轮功 六四 事件

Odpowiedzi:

225

W przypadku trendów we / wy dysku istnieje kilka opcji. Moim osobistym faworytem jest sarpolecenie z sysstat. Domyślnie daje wynik w następujący sposób:

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

%iowaitJest czas oczekiwania na I / O. Używając pakietu Debian, musisz włączyć moduł zbierający statystyki poprzez /etc/default/sysstatplik konfiguracyjny po instalacji pakietu.

Aby zobaczyć bieżące wykorzystanie w podziale na urządzenia, możesz użyć iostatpolecenia, również z pakietu 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

Niektóre inne opcje, które mogą pokazywać użycie dysku na wykresach trendów, to munin i kaktusy .

Jordan
źródło
Munin lub kaktusy są tym, czego szukam. Dzięki za wskazówki.
rumianek
6
Zauważ, że% iowait pokazuje tylko czas, kiedy jądro nie ma nic innego do roboty, jak tylko czekać na IO. Na serwerze w 100% powiązanym z procesorem będzie to zero, bez względu na to, jak dużo IO robi.
Jürgen Strobel
iostat -x dm-0 | grep Device; iostat -xd 2 -y dm-0 | grep dm-0
Juan Medina
104

Spójrz na iotop.

Lub jododump, jeśli bardziej zależy ci na twoim sposobie myślenia.

Uwaga: Wymaga to co najmniej jądra 2.6.20 do działania.

zadzwonić
źródło
Nie dotyczy to tylko Linuksa, ale wymaga także nowszego (lub załatanego) jądra.
Jordan
Wyglądają dobrze, aby dowiedzieć się, co się teraz dzieje, ale szukam monitorowania większego obrazu.
camomileCase
8
@camomileCase - nie określiłeś tego w swoim pytaniu ...
zadzwoń
90

Lubię dstat. Może wyświetlać sumy i statystyki na dysk, a nawet urządzenia md (RAID), może także używać kolorów dla lepszego przeglądu:

$ 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 dla znaczników czasu
  • -d do statystyki dysku
  • -D aby określić dokładne urządzenia do zgłoszenia
  • 60średnio ponad 60 sekund. Wyświetlacz jest aktualizowany co sekundę, ale tylko raz na 60 sekund zostanie uruchomiona nowa linia.

  • nieużywany w tym przykładzie, ale -cmoże zgłaszać procent oczekiwania na IO, który w większości przypadków jest związany z oczekiwaniem procesora na dane z dysków.

Jest dostępny dla większości dystrybucji Linuksa, ale czasami trzeba go zainstalować z repozytoriów.

jippie
źródło
49

Tylko z plików na twoim komputerze (zakładając, że jest to najnowsze jądro) możesz zapytać /sys/block/sda/statlub /proc/diskstats. Będzie to jednak wymagać tłumaczenia. Ale miło jest na szybki i brudny czek.

charlesbridge
źródło
22
/sys/block/sda/statjest udokumentowany na https://www.kernel.org/doc/Documentation/block/stat.txt
ignis
10
/proc/diskstatsjest udokumentowany na kernel.org/doc/Documentation/iostats.txt
Rikard Söderström
2
Dużą zaletą tej odpowiedzi jest to, że nie trzeba instalować żadnych narzędzi. Po prostu tam jest. (Potencjalnie :-)
Ben Aveling
2
np. echo „czytaj io scalaj sektory kleszcze pisz io łączy sektory kleszcze inflight ioticks timeinqueu”; cat / sys / block / vda / vda1 / stat; sleep 10; cat / sys / block / vda / vda1 / stat
Ben Aveling
35

Inną opcją jest użycie: sudo iotop -aoP

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

Ten program powie ci, ile proces zapisał na dysk i odczytał z dysku od momentu uruchomienia iotop.

lanoxx
źródło
Słyszę, że coś uzyskuje dostęp do dysku, ale skumulowana moc wyjściowa rośnie bardzo powoli, czasem wcale nie w ciągu sekundy ... ???
Michael
Jeśli usłyszysz dysk, prawdopodobnie jest on stary i / lub wolny. Nowoczesne dyski twarde są zwykle bardzo ciche. Jakie to wydaje dźwięki? Użyj, smartctlaby sprawdzić, czy dysk jest w dobrej kondycji.
Rudolfbyker
8

Monitorowanie dysku Io można wykonać za pomocą wielu narzędzi, takich jak następujące.

  1. Iostat
  2. Iozone
  3. SAR
  4. vmstat

Również niektóre ważne koncepcje systemu operacyjnego są bardzo potrzebne do ich zrozumienia. Przeczytaj kompletny samouczek Linux IO

sarath
źródło
2
iozone służy do testowania, a nie monitorowania: „Iozone to narzędzie do testowania systemu plików. Benchmark generuje i mierzy różne operacje na plikach”.
Andrew Beals
7

Kolejnym doskonałym narzędziem do szybkiego przeglądu, skąd pochodzi obciążenie atop

Może wyświetlać przegląd wszystkich zasobów (procesor, pamięć / zamiana, sieciowe i dyskowe operacje we / wy) lub możesz przejść do jednego zasobu i posortować procesy według ich zużycia.

Aaron Digulla
źródło
5

Dlaczego nie spróbować nmon . Robi dyski i sieć z procesami. Pierwotnie dla systemu AIX, ale od kilku lat jest przenoszony do systemu Linux.

Steve Rowe
źródło
1

Najlepszą rzeczą, jeśli chcesz zobaczyć wydajność przez długi czas, jest użycie Centreona, który jest potężnym narzędziem opartym na Nagios . Centreon umożliwia monitorowanie poprzez rysowanie wykresów wydajności zasobów i wielu innych rzeczy.

omar
źródło
Jakie inne rzeczy? Jakieś zrzuty ekranu? Rozwiń swoją odpowiedź.
Konrad Gajewski