piątek, 25 września 2015

IOSTAT, IOTOP, TOP

http://www.varlog.pl/2010/02/10-narzedzi-ktore-musi-znac-kazdy-administrator/




yum install sysstat

  iostat

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.
Przykładowe użycie: iostat -x 1
avg–cpu:  %user %nice %system %iowait %steal %idle
0,46    0,00    0,08    0,02    0,00   99,44
Device rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq–sz avgqu–sz await svctm util
sda 0,09 0,77 0,07 0,23 2,69 7,87 35,74 0,00 4,49 0,84 0,02
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.




iotop


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:


iotop
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.  

1 komentarz:

  1. Cieszę się że mój artykuł o iotop tak się spodobał że postanowiłeś go w całości skopiować.

    Rada na przyszłość: dobrą praktyką jest linkowanie pod artykułem do wykorzystanych stron.

    OdpowiedzUsuń