Ważnym elementem kontroli systemu i jego działania jest odczyt aktualnych parametrów poszczególnych elementów sprzętowych takich jak ilość pamięci i jej aktualne zużycie. Nie mniej ważnym parametrem jest również CPU jak i zasoby dyskowe, ilość otwartych plików i uruchomionych procesów to wszystko wpływa na sprawne działanie środowiska Linux. Dobrze jest więc mieć możliwość szybkiego podglądu aktualnego stanu tych parametrów, co możemy zrobić przez istniejące w podstawowej instalacji systemu narzędzia. Mając wgląd w aktualne poziomy poszczególnych elementów administrator może podjąć odpowiednie działania mające na celu zabezpieczenie środowiska przed przeciążeniem umożliwiając jego nieprzerwaną pracę na odpowiednim poziomie.
VMSTAT - Virtual Memory Statistics
Vmstat jest jednym z najczęściej używanych podstawowych narzędzi mających na celu diagnozowanie tego co dzieje się z pamięcią systemu. Narzędzie to wchodzi w skład paczki "procps", w której to znajdują sie również inne znane narzędzia takie jak "free" czy popularny "top".
Polecenie vmstat użyte bez żadnych parametrów w wyniku wyświetli średnie wartości mierzone od uruchomienia systemu. W raz z vmstat mamy możliwość zastosowania dwóch parametrów, z których jeden określa przedział czasowy , którego ma dotyczyć pomiar wskazywany w sekundach. Statystyki dotyczące pamięci domyślnie przedstawiane są w KiB jednak możemy ustawić to na inną wartość stosując drugi przełącznik. Do wyboru mamy kb, MB lub MiB. By zmienić jednostkę w jakiej wyświetlane będą statystyki dodajemy odpowiednio:
-S k lub -S m lub -S M
Przykładowe wyniki mogą wyglądać następująco:
![]() |
Przykład działania polecenia vmstat |
Pierwsza linia jaką wyświetla vmstat jest obejmuje wartości średnie od startu systemu. Jeżeli chcemy wykonać kilka pomiarów w określonych odstępach czasu - czas pomiędzy kolejnymi pomiarami podajemy w sekundach. Możemy również pozbyć się linii zawierających nagłówki tak by otrzymane dane mogły być bezpośrednio poddane obróbce w innym narzędziu.
vmstat 10 | tail -n +4
Powyższe polecenie wyświetli informacje dotyczące pamięci od upływu ostatnich 10 sekund dając kolejny pomiar co 10 sekund bez danych nagłówkowych.
![]() |
Przykład działania vmstat bez nagłówków co 10 sekund |
Wracając do nagłówków informacyjnych poszczególne z nich oznaczają :
proces
-r - ilość procesów oczekujących na uruchomienie
-b - ilość procesów w awaryjnym stanie uśpienia
memory
- swpd - ilość pamięci znajdującej się aktualnie w obszarze swap
- free - ilość wolnej, dostępnej pamięci
- buff - ilość pamięci znajdującej zbuforowanej
- cache - ilość pamięci tymczasowej cache
swap
- si - ilość stron znajdujących się w swap w ciągu jednej sekundy
- so - ilość stron wychodzących z obszaru swap w ciągu jednej sekundy
io (I/O statystyki bloków)
- bi - ilość odczytanych bloków na sekundę
- bo - ilość zapisanych bloków na sekundę
system
- in - ilość przerwań na sekundę
- cs - ilość zmian kontekstów na sekundę
cpu
- us - Procentowy udział czasu pracy procesora na wykonywaniu procesów użytkowników
- sy - Procentowy udział czasu pracy procesora na wykonywaniu zadań systemowych (jądra)
- id - Procentowy udział czasu procesora w stanie bezczynności
- wa - Procentowy udział czasu procesora spędzony na oczekiwaniu pełnego odczytu bloków
- st - Procentowy udział czasu procesora z uruchomionymi procesami z uwzględnieniem
wirtualizacji
Jeżeli chcemy wykonać określoną ilość pomiarów np.: 20 pomiarów w odstępach 5 sekund polecenie będzie miało postać :
vmstat 5 20
![]() |
Przykładowe działanie polecenia vmstat co 5 sekund 20 próbek |
SAR - The System Activity Reporter
Polecenie sar jest multi narzędziem należącym do pakietu sysstat. Sar posiada dwa tryby pracy. Narzędziem tym możemy odczytywać wyniki pracy z crona co 10 min oraz możemy również zbierać aktualne dane systemowe. Zadania crona znajdują się w /etc/cron.d/sysstat , a wywoływane są z /usr/lib64/sa/sa1 oraz /usr/lib64/sa/sa2 dane zbierane są przez /usr/lib64/sa/sadc oraz sar. Zebrane informacje przechowywane są w /var/log/sa/saxx gdzie xx są to dwie cyfry oznaczające miesiąc i dzień.
Do uzyskania najlepszych rezultatów wykorzystując sar należy się upewnić, że zmienna $LANG została prawidłowo ustawiona i umożliwia tworzenie raportów ze zgodnym i czytelnym formatem czasu. Przykładowo jeżeli chcemy posortować dane po pierwszej kolumnie to en_US.UTF-8 lokalne pozycje 01:00:00 PM znajduje się przed 02:00:00 PM. Takie sortowanie może zakrzywiać punkty danych i zniekształcać wykres. Rekomendowanym ustawieniem jest korzystanie z $LANG ustawionego na C. W związku z sar łatwo nadpisać zmienną w następujący sposób:
LANG=C sar -q
Wynik powyższego polecenia wygląda następująco
$ LANG=C sar -q
Linux 2.6.9-67.ELsmp (station1) 07/15/13
00:00:01 runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15
00:10:01 1 984 0.53 0.34 0.30
00:20:01 0 984 0.10 0.20 0.24
Dla uproszczenia można zastosować alias dla polecenia sar w postaci :
alias sar='LANG=c sar'
Sar może zostać użyty do odczytu i analizy plików logów z użyciem przełącznika "-f".
$ sar -q -f /var/log/sa/sa14
Linux 2.6.9-67.ELsmp (zenon) 07/14/2013
12:00:01 AM runq-sz plist-sz ldavg-1 ldavg-5 ldavg-15
12:10:01 AM 0 1005 0.64 0.82 0.77
12:20:02 AM 2 1005 0.97 0.93 0.84
12:30:01 AM 1 1008 0.78 1.07 0.97
12:40:01 AM 0 1005 0.93 0.96 0.93
Przykładowe użycia sar
Zadanie 1
Skonfigurowanie widoku sar w formacie 24 godzinnym.
# echo "alias sar='LANG=C sar'" >> /etc/bashrc
Zadanie 2
Raport utylizacji CPU
$ sar -P 0
Linux 2.6.9-67.ELsmp (station1) 07/15/2013
12:00:01 AM CPU %user %nice %system %iowait %idle
12:10:01 AM 0 4.58 0.86 2.58 0.02 91.96
12:20:01 AM 0 3.33 1.13 0.67 0.04 94.82
12:30:01 AM 0 2.72 1.08 0.39 0.01 95.81
12:40:01 AM 0 2.62 1.09 0.58 0.01 95.70
12:50:01 AM 0 2.72 1.05 0.87 0.01 95.35
Zadanie 3
Raport dotyczący I/O oraz transferu
$ sar -b
Linux 2.6.9-67.ELsmp (station1) 07/15/2013
12:00:01 AM tps rtps wtps bread/s bwrtn/s
12:10:01 AM 3.68 0.08 3.60 6.21 74.87
12:20:01 AM 9.08 0.66 8.41 76.12 106.20
12:30:01 AM 2.46 0.00 2.46 0.00 45.38
12:40:01 AM 8.42 0.00 8.42 0.00 100.19
12:50:01 AM 2.49 0.00 2.49 0.00 47.96
01:00:01 AM 8.90 0.00 8.90 0.00 103.49
Zadanie 4
Raport wykorzystania karty sieciowej z aktualnego pliku logu
$ sar -n DEV | less
Linux 2.6.9-67.ELsmp (station1) 07/15/2013
12:00:01 AM IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s
12:10:01 AM lo 4.32 4.32 8256.65 8256.65 0.00 0.00 0.00
12:10:01 AM eth0 18.16 0.00 2478.70 0.00 0.00 0.00 0.00
12:10:01 AM eth1 69.16 97.91 50454.20 48066.97 0.00 0.00 0.00
12:10:01 AM eth2 35.89 0.04 6954.82 2.78 0.00 0.00 0.02
iostat i mpstat
Tak jak poprzednik sar iostat i mpstat znajdują się w pakiecie sysstat. Iostat ma zastosowanie w diagnozowaniu czy wszystko w porządku z naszymi zasobami dyskowymi, co w praktyce oznacza monitorowanie naszych urządzeń blokowych. Saturacja dysków twardych jest bardzo niepożądana przez co nasz system może działać zdecydowanie wolniej i dzięki iostat możemy w szybki sposób to wykryć i odpowiednio zareagować.
![]() |
Działanie polecenia iostat |
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 iostat 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.
Zadaniem mpstat jest wyświetlenie informacji na temat obciążenia procesorów (CPU) w systemie. W systemach w jakich zastosowano procesory wielordzeniowe każdy rdzeń będzie widziany jako odrębna jednostka. Zazwyczaj polecenie to wykorzystuje się z następującymi przełącznikami :
mpstat -P ALL
![]() |
Działanie polecenia mpstat |
Możłiwe jest również zapisanie analizy z określonego czasu do pliku co wykonujemy w następujący sposób:
# mpstat -P ALL 1 60 > /root/mpstatanaliza.txt
Komentarze
Prześlij komentarz