Rejestracja i analiza wydajności w Linuksie programem sar

Z Thomas-Krenn-Wiki
Przejdź do nawigacji Przejdź do wyszukiwania

sar służy do zapisu i analizy różnych informacji dotyczących procesów zachodzących w systemie. W przypadku problemów z wydajnością sar umożliwia również wsteczną analizę obciążeń poszczególnych podsystemów (CPU, pamięć RAM, pamięć dyskowa, przerwania, interfejsy sieciowe, ...), w celu wyizolowania problemu.

Struktura

sar jest częścią sysstat[1]. Sam sar składa się z następujących części:

  • sar(1) - wyświetla zapisane dane.
  • sadc(8) - system activity data collector, zapisuje w formacie binarnym dane o procesach systemowych.
  • sa1(8) - skrypt BASH, wykorzystuje w tle sadc, uruchamiany jest przez Cron co 10 minut (/etc/cron.d/sysstat).
  • sa2(8) - skrypt BASH, wykorzystywany jest do zapisu dziennego raportu, uruchamiany jest przez Cron każdego dnia (/etc/cron.d/sysstat).
  • sadf(1) - wyświetla zapisane dane, w przeciwieństwie do sar oferuje różne formaty (CSV, XML, itd.).

Wersje

Pakiet sysstat (das u.a. sar enthält) jest nadal rozwijany. Numeracja wersji przeprowadzana jest według następującego schematu:[2]:

  • numer wersji x.0 wskazuje zawsze wersję stabilną
  • numer wersji x.1 wskazuje zawsze wersje testowe i rozwojowe

Nowe wersje oferują zazwyczaj nowe opcje. W wersji 7.1.6 funkcje sar -x i sar -X zostały wyeksportowane do (pidstat)[3].

Instalacja

Jak zostało już wspomniane sar jest częścią pakietu sysstat, który standardowo zawarty jest w wielu dystrybucjach lub może odpowiednio do dystrybucji zostać doinstalowany przez yum install sysstat lub apt-get install sysstat. Przy czym również często zostają dodane Cronjobs w /etc/cron.d/sysstat.

Sposób funkcjonowania zapisu

sa1 i sa2 zapisuje pozyskane dane w katalogu /var/log/sa/ (RHEL/CentOS) lub /var/log/sysstat/ (Debian). Dane przechowywane są w konfiguracji standardowej przez tydzień, okres ten może zostać wydłużony do maks. 28 dni (w /etc/sysconfig/sysstat - RHEL/CentOS lub /etc/sysstat/config - Debian 4.0 i /etc/sysstat/sysstat - Debian 5.0).

Aktywacja zapisu sar w Debianie: aby aktywować automatyczny zapis w Debianie należy zmienić w pliku /etc/default/sysstat wartość parametru "ENABLED" na "true" - standardowo jest "false".

Przykład:

[root@testserver ~]# cat /etc/sysconfig/sysstat
# How long to keep log files (days), maximum is a month
HISTORY=7
[root@testserver ~]# cat /etc/cron.d/sysstat 
# run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib64/sa/sa1 1 1
# generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib64/sa/sa2 -A

[root@testserver ~]# ls -l /var/log/sa/
total 8952
-rw-r--r--  1 root root 410352 May 18 23:50 sa18
-rw-r--r--  1 root root 410352 May 19 23:50 sa19
-rw-r--r--  1 root root 410352 May 20 23:50 sa20
-rw-r--r--  1 root root 410352 May 21 23:50 sa21
-rw-r--r--  1 root root 410352 May 22 23:50 sa22
-rw-r--r--  1 root root 410352 May 23 23:50 sa23
-rw-r--r--  1 root root 410352 May 24 23:50 sa24
-rw-r--r--  1 root root 410352 May 25 23:50 sa25
-rw-r--r--  1 root root 253712 May 26 14:40 sa26
-rw-r--r--  1 root root 611085 May 17 23:53 sar17
-rw-r--r--  1 root root 611129 May 18 23:53 sar18
-rw-r--r--  1 root root 611127 May 19 23:53 sar19
-rw-r--r--  1 root root 611127 May 20 23:53 sar20
-rw-r--r--  1 root root 611085 May 21 23:53 sar21
-rw-r--r--  1 root root 611100 May 22 23:53 sar22
-rw-r--r--  1 root root 611085 May 23 23:53 sar23
-rw-r--r--  1 root root 611085 May 24 23:53 sar24
-rw-r--r--  1 root root 611125 May 25 23:53 sar25
[root@testserver ~]#

Wyświetlenie zapisanych przez sar danych

Ograniczenie okresu

sar może wyświetlić dane z aktualnego dnia (do czego nie jest wymagany parametr) lub dane z określonego dnia (np. z parametrem -f /var/log/sa/sa21).

Może również zostać podany okres za pośrednictwem następującego parametru:

  • -s [ hh:mm:ss ] - czas rozpoczęcia punkt wyjściowy (np. -s 07:30:00), bez podania konkretnego czasu zostaje jako standardowo zastosowane 08:00:00.
  • -e [ hh:mm:ss ] - czas końcowy (np. -e 19:30:00), bez podania konkretnego czasu zostaje jako standardowo zastosowane 18:00:00.

Parametry dla różnych podsystemów

Tu pokazane są przykłady wyświetlenia różnych wartości (wartości pochodzą z systemu CentOS 4.7, sysstat wersja 5.0.5).

Obciążenia procesora: sar -P ALL

Tu wyświetlone są wartości wszystkich procesorów (-P ALL) z 25. bieżącego miesiąca (-f /var/log/sa/sa25).

[root@testserver ~]# sar -P ALL -f /var/log/sa/sa25
Linux 2.6.9-023stab048.6-smp (testserver.thomas-krenn.com) 	05/25/09

00:00:01          CPU     %user     %nice   %system   %iowait     %idle
00:10:01          all      9.63      0.00      3.81      6.20     80.36
00:10:01            0      8.69      0.00      3.63      7.18     80.50
00:10:01            1      9.28      0.00      3.96      4.47     82.29
00:10:01            2     10.22      0.00      3.86      6.31     79.62
00:10:01            3      9.84      0.00      3.66      6.91     79.59
00:10:01            4      9.86      0.00      3.94      5.28     80.92
00:10:01            5      9.97      0.00      3.84      6.37     79.81
00:10:01            6      9.90      0.00      4.04      7.21     78.85
00:10:01            7      9.32      0.00      3.54      5.83     81.32
[...]
Average:          all      9.21      0.00      1.68      0.27     88.84
Average:            0      9.03      0.00      1.70      0.31     88.97
Average:            1      9.20      0.00      1.67      0.25     88.88
Average:            2      9.45      0.00      1.70      0.28     88.56
Average:            3      9.84      0.00      1.68      0.26     88.22
Average:            4      9.23      0.00      1.68      0.26     88.84
Average:            5      9.05      0.00      1.68      0.27     89.00
Average:            6      8.90      0.00      1.68      0.29     89.14
Average:            7      8.97      0.00      1.66      0.28     89.10
[root@testserver ~]#

Obciążenie pamięci RAM: sar -r

Tu wyświetlone są wartości pamięci RAM (-r) aktualnego dnia. Wartość bliska 100 dla %memused jest przy tym pozytywna (tak długo jak nie jest konieczna pamięć SWAP). Vide Ustawienia pamięci podręcznej kontrolera RAID i dysków twardych.

[root@testserver ~]# sar -r
Linux 2.6.9-023stab048.6-smp (testserver.thomas-krenn.com)   05/26/09

00:00:01    kbmemfree kbmemused  %memused kbbuffers  kbcached kbswpfree kbswpused  %swpused  kbswpcad
00:10:01        67248  16292680     99.59     42320  12502420   2047648       628      0.03         0
00:20:01       129776  16230152     99.21     47020  12527100   2047648       628      0.03         0
[...]
14:50:01       638680  15721248     96.10    158392   6953128   2047648       628      0.03         0
15:00:01       646272  15713656     96.05    159880   6966980   2047648       628      0.03         0
15:10:01        59784  16300144     99.63    132044   6565036   2047648       628      0.03         0
Average:       554290  15805638     96.61    124889  10992802   2047648       628      0.03         0
[root@testserver ~]# 

Średnie obciążenie: sar -q

Tu wyświetlone są wartości średniego obciążenia (-q) aktualnego dnia.

[root@testserver ~]# sar -q 
Linux 2.6.9-023stab048.6-smp (testserver.thomas-krenn.com) 	05/26/09

00:00:01      runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15
00:10:01            0       590      1.62      1.89      1.21
00:20:01           11       574      0.24      0.63      0.86
[...]
15:10:01            7       671      2.36      2.26      2.03
15:20:01            9       651      1.85      1.96      1.99
Average:            7       600      1.02      1.04      1.00
[root@testserver ~]# 

Przepustowość I/O: sar -b

Tu wyświetlane są wartości szybkości transferu I/O (-b) aktualnego dnia.

[root@testserver ~]# sar -b
Linux 2.6.9-023stab048.6-smp (testserver.thomas-krenn.com) 	05/26/09

00:00:01          tps      rtps      wtps   bread/s   bwrtn/s
00:10:01       402.21    197.20    205.00  35133.80  27616.04
00:20:01        66.61     56.36     10.24   2034.96    288.93
[...]
15:20:01        72.43      6.54     65.89    176.29   2720.35
15:30:01        73.28      6.08     67.20    399.04   3516.21
Average:        40.21      5.57     34.64    585.00   1561.78
[root@testserver ~]# 

Network statistic: sar -n DEV

Tu wyświetlane są wartości network statistic (-n DEV) aktualnego dnia.

[root@testserver ~]# sar -n DEV
Linux 2.6.9-023stab048.6-smp (testserver.thomas-krenn.com) 	05/26/09

00:00:01        IFACE   rxpck/s   txpck/s   rxbyt/s   txbyt/s   rxcmp/s   txcmp/s  rxmcst/s
00:10:01           lo      0.82      0.82    177.69    177.69      0.00      0.00      0.00
00:10:01         eth0     31.56     40.21   4537.41  35891.07      0.00      0.00      0.00
00:10:01         eth1   4876.29   9919.22 451754.61 14927283.09      0.00      0.00      0.00
00:10:01       venet0     52.88     44.19  46547.68  15279.15      0.00      0.00      0.00
[...]
15:30:01           lo      0.82      0.82    176.68    176.68      0.00      0.00      0.00
15:30:01         eth0    113.08    155.70  17825.90 188643.77      0.00      0.00      0.00
15:30:01         eth1    634.80   1268.92  58495.76 1888004.02      0.00      0.00      0.00
15:30:01       venet0    189.86    147.08 213164.21  42532.10      0.00      0.00      0.00
Average:           lo      0.82      0.82    177.10    177.10      0.00      0.00      0.00
Average:         eth0     56.42     78.90   9104.66  94428.28      0.00      0.00      0.00
Average:         eth1    281.59    559.55  25919.74 830592.96      0.00      0.00      0.00
Average:       venet0     87.26     64.75  99974.13  14933.05      0.00      0.00      0.00
[root@testserver ~]# 

Wszystkie zgromadzone wartości

Dzięki sar -A mogą zostać pokazane wszystkie zgromadzone wartości (CPU, RAM, itd.).

Narzędzia do analizy graficznej

Następujące narzędzia przedstawiają graficznie zapisane przez sar dane::

Odnośniki

Powiązane artykuły

Analiza wydajności w Linuksie programem kSar
Pliki archiwum w Linuksie
Podstawowe informacje o Page Cache w Linuksie