iostat – jest
narzędziem prezentującym wykorzystanie naszych urządzeń blokowych, czyli
w praktyce jest to monitorowanie pracy dysków twardych, tzw. I/O.
Saturacja dysków twardych jest zjawiskiem bardzo niepożądanym, które automatycznie przekłada się na zwolnienie pracy całego systemu, dzięki iostatowi, możemy szybko się przekonać czy przyczyna naszych problemów leży właśnie w za dużym wykorzystaniu zasobów I/O.
W wyniku widzimy dane dla naszego urządzenia ‚sda‚.
rrqm/s – ilość skolejkowanych żądań odczytu z dysku na sekundę
wrqm/s – ilość skolejkowanych żądań zapisu na dysk na sekundę
r/s – ilość odczytów z dysku na sekundę
w/s – ilość zapisów na dysk na sekundę
rsec/s – ilość sektorów czytanych na sekundę
wsec/s – ilość sektorów zapisywanych na sekundę
avgrq–sz – średni rozmiar w sektorach
avgqu–sz – średnia wielkość kolejki oczekujących żądań dostępu do dysku
await – średni czas dostępu do dysku (z uwzględnieniem kolejki) w milisekundach
svctm – średni czas obsługi żądania w milisekundach
%util – procentowe zużycie procesora potrzebne do obsłużenia żądania, jeśli wynosi 100% dochodzi do sytuacji saturacji zasobów
Jeśli wskazania iostata pokazują utylizację na poziomie 80-100% należy znaleźć przyczynę i ją wyeliminować, sytuacja ta oznacza, że nasz procesor spędza głównie czas w oczekiwaniu na dane a nie na ich przetwarzaniu.
Na jednym z serwerów zauważyłem dziwny wzrost obciążenia. Tzw. LOAD
od kilku dni po woli rósł. top pokazywał że dwa rdzenie CPU czekają na
dane z dysku – tzw. io wait na poziomie 80~90% ale żaden proces w
znaczącym stopniu nie obciążał CPU.
Jest kilka narzędzi (iostat, wmstat),
które pozwalają monitorować obciążenie dysków ale ja nie szukałem
informacji czy i w jakim stopniu dyski są obciążone – wiedziałem że są.
Chciałem dowiedzieć się który proces generuje to obciążenie – by móc go
ubić
Przydatny okazał się programik iotop – który działa jak top ale sortuje procesy w zależności od generowanego przez nie obciążenia dysków – właśnie tego szukałem:
Zrzut z programu iotop
Program jest w standardowych repozytoriach Debiana i można go zainstalować w ten sposób:
apt-get install iotop
TOP
TOP
VIRT - to co mysli ze mam, RES -> tyle ile faktycznie ma,
s-STAN np. z - zombie, przy CPU id-ile proces byl nieuzywany,
wa - io/wait po tym mozna sprawdzic czy nie potrzebujemy szybszego dysku,
hi -> przerwania
< > - sortowanie albo po lewej albo po prawej kolumnie,
R -> od najwiekszych do najmniejszych
1 -> pokazuje ilosc procesorow
NI - nice, priorytet. Dziala tak ze jak ktos ma wiekszy NICE to ma mniej procesora.
Zeby przyspieszyc np tylko jeden proces nalezy dac komus NIC ujemny.
r - zmieniamy NICE. Minusowe wartosci da sie robic tylko z konta roota.
k - killuje
load avarage -> jak obciazany jest system,
ilosc procesow ktore stoja w jakiejs kolejce do egzekucji.
Kazdy system moze inaczej, powyzej 1-ego juz wiadomo ze jest troche obciazony.
Cieszę się że mój artykuł o iotop tak się spodobał że postanowiłeś go w całości skopiować.
OdpowiedzUsuńRada na przyszłość: dobrą praktyką jest linkowanie pod artykułem do wykorzystanych stron.