GNU/Linux >> Znalost Linux >  >> Linux

Příkaz Sar v Linuxu s příklady


Příkaz Sar se používá k vytváření statistických zpráv o různých zdrojích, včetně využití CPU, využití paměti, spotřeby I/O zařízení, monitorování sítě, swapu a průměrů zatížení.

SAR je zkratka pro System Activity Reporter, velmi užitečné nástroje pro každého správce Linuxu ke sledování výkonu systému a prozkoumávání úzkých míst. Tento nástroj poskytuje balíček sysstat.

V tomto tutoriálu si projdeme, jak nainstalovat balíček sysstat a používat příkaz sar na Linuxu.

Nainstalujte balíček sysstat

Balíček sysstat obsahuje mnoho nástrojů, které jsou sbírkou nástrojů pro sledování výkonu pro systém Linux. Sar je nástroj, který patří do balíčku sysstat.

Instalace balíčku sysstat na RHEL a CentOS

$ sudo yum nainstalovat sysstat 

Po úspěšné instalaci sysstat ověřte instalaci příkazem:

$ které sar/usr/bin/sar 

Ve výchozím nastavení bude sysstat ukládat statistiky serveru do souboru '/var/log/sa/saDD' (DD je den v měsíci, například:/var/log/sa/sa08) a bude data uchovávat 28 dní. Pokud si chcete data ponechat více, musíte upravit konfigurační soubor sysstat '/etc/sysconfig/sysstat'.

$ sudo cat /etc/sysconfig/sysstatHISTORY=28 

Upravte hodnotu HISTORY s počtem dní, po které chcete protokoly uchovávat.

Instalace balíčku sysstat na Ubuntu a Debian

$ sudo apt install sysstat 

Ověření instalace příkazem:

$ které sar/usr/bin/sar 

Na Ubuntu jej musíme povolit, zatímco CentOS není potřeba.

Pomocí svého oblíbeného editoru (vim, nano nebo gedit) upravte následující soubor:

$ sudo nano /etc/default/sysstat 

A nastavte ZAPNOUT pravda :

ENABLED="true" 

Restartujte službu

$ sudo service sysstat restart 

Na Ubuntu je konfigurační soubor '/etc/sysstat/sysstat' a data budou ve výchozím nastavení uchovávána po 7 dnech.

$ cat /etc/sysstat/sysstatHISTORY=7 

Od Fedory 21 je sysstat standardně dodáván a vše, co musíte udělat, je spustit níže uvedené příkazy:

$ sudo systemctl povolit sysstat.service$ sudo systemctl spustit sysstat.service 

Existuje úloha cron pro sysstat, která se spouští každých 10 minut a shromažďuje data a ukládá je do odpovídajícího souboru /var/log/sa/saDD. Pokud chcete změnit interval běhu tohoto cronu, můžete jej upravit v '/etc/cron.d/sysstat'.

U systemd soubor jednotky časovače každých 10 minut volá sysstat-collect.service (/usr/lib/systemd/system/sysstat-collect.service), aby shromáždil statistiky.

$ cat /etc/cron.d/sysstat# Zprávy o aktivitě každých 10 minut každý den5-55/10 * * * * příkaz root -v debian-sa1> /dev/null &&debian-sa1 1 1# Další spuštění ve 23:59 pro otočení statistického souboru59 23 * * * příkaz root -v debian-sa1> /dev/null &&debian-sa1 60 2 

Použití příkazu Sar

Základní syntaxe pro použití příkazu sar je následující:

sar [možnost] [-o název souboru] [-f název souboru] [interval] [počet] 

Kde:

interval :období v sekundách.

počet: kolikrát se má vytvořit výstupní statistika.

1. Najděte aktivitu CPU

Ve výchozím nastavení (bez zadaných dalších možností) bude příkaz sar hlásit aktivitu CPU serveru. Také možnost -u lze použít k získání zprávy o využití CPU.

Pokud chcete získat zprávu o aktivitě CPU každé 2 sekundy třikrát, můžete použít následující příkaz sar:

$ sar -u 2 3Linux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 09/06/2020 _x86_64_ (2 CPU)22:26:54 CPU %user %hezký %systém %iowait %ukrást %idle22:26:56 vše 4,03 0,00 0,50 0,00 0,00 95,4722:26:58 vše 8,08 0,00 0,51 0,00 0,00 91 ,4122:27:00 vše 12,50 0,00 1,00 0,00 0,00 86,50Průměr:vše 8,21 0,00 0,67 0,00 0,00 91,11 

Kde:

%uživatel označuje procento využití CPU, ke kterému došlo při provádění na úrovni uživatele (uživatelský prostor)

%systém označuje procento využití CPU, ke kterému došlo při provádění na systémové úrovni (prostor jádra)

%idle je procento času, po který byly CPU nebo CPU nečinné a systém neměl nevyřízený požadavek na diskový vstup/výstup.

Pokud chcete získat výstup v souboru v binární podobě, musíte připojit -o název_souboru pomocí příkazu sar. Například:

$ sar -u 2 3 -o log-soubor 

Můžete také získat zprávu o aktivitě CPU za konkrétní den, řekněme:9. června 2020. Najdete ji jako:

$ sudo sar -u -f /var/log/sa/sa09 

2. Najděte využití procesoru pro každý procesor

-u volba poskytuje využití CPU na všech procesorech. Pokud chcete zjistit aktivitu CPU na všech procesorech samostatně, musíte použít -P možnost.

$ sar -P ALL 1 1Linux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 10/06/2020 _x86_64_ (2 CPU)05:38:18      %    uživatel CPU       %  Systém %Iowait %krádež %idle05:38:19 Všechno 3,03 0,00 0,00 0,00 0,00 96 9705:38:19 0 3,96 0,00 0,99 0,00 0,00 95,0505:38:19 1 3,00 0,00 0,00 0,00 0,00 97,00 AVELENT:CPU %Uživatel % %Systém %IoWait %Scéd %Idlea Everage:All 3,03,00 0, 00 0,00 0,00 96,97A Everage:0 3,96 0,00 0,99 0,00 0,00 95,05A Everage:1 3,00 0,00 0,00 0,00 0,00 97,00  

3. Najděte Využití paměti

Využití paměti (použitá a volná paměť serveru) v průběhu času můžete zjistit pomocí -r přepínač.

$ sar -r 1 3Linux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 06. 10. 2020 _x86_64_ (2 CPU)05:41:04    kbcomused miused kbbem kbm %Commit Kbactive KBinact KBDIRTY05:41:05 855300 3025220 77,96 0 1495276 2426864 30,5526506322230,965223222222222222222222222222222322223232222232320, 12622, 1252, 12522, 1252, 1252, 4952, 12522, 4952, 1252, 4952, 125232050, 1252, 306232. 0 1495276 2426864 30,55 1265012 1158172 100A FORÁNKA:855044 3025476 77,97 0 1495276 2426864 30,55 1265051 1158172 100  

Kde:

kbmemfree označuje množství dostupné volné paměti v kilobajtech.

kbmemused udává množství použité paměti v kilobajtech. Toto nebere v úvahu paměť používanou samotným jádrem.

Pokud chcete shromáždit využití paměti za konkrétní den, řekněte:5. září, musíte jej spustit následujícím příkazem:

$ sar -r -f /var/log/sa/sa05 

4. Najděte aktivitu výměny

Využití swapu stroje můžete zkontrolovat pomocí -W možnost.

$ sar -W 1 3Linux 2.6.18-274.18.1.el5 (můj server) 09/06/201203:31:12 PM pswpin/s pswpout/s03:31:13 16:16 0:00 14 PM 16.00 0.0003:31:15 PM 15.84 0.00Průměr:16.00 0.00 

Kde:

pswpin/s udává celkový počet odkládacích stránek, které systém přinesl za sekundu.

pswpout/s udává celkový počet odkládacích stránek, které systém vytiskne za sekundu.

Pokud chcete shromáždit využití swapu pro konkrétní den, například 5. září, musíte jej spustit jako následující příkaz sar:

$ sar -W -f /var/log/sa/sa05 

5. Najděte průměry zatížení v průběhu času

Průměry zatížení přesčas můžete najít pomocí -q možnost.

$ sar -q 1 3Linux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 10/06/2020 _x86_64_ (2 CPU)06:16:13 l      plist-sz g -1 LDAVG-5 LDAVG-15 BLOCKED06:16:14 0 329 0,00 0,04 0,09 006:16:15 0 329 0,00 0,04 0,09 006:16:16 0 329 0,00 0,04      0,09         0Průměr:            0       329      0,00      0,04      0,09         0 

Kde:

runq-sz :Zobrazuje délku fronty běhu (počet úloh čekajících na dobu běhu).

plist-sz :Zobrazuje počet úkolů v seznamu úkolů.

ldavg-1/5/15 :Průměrná zátěž systému za poslední minutu / za posledních 5 minut / za posledních 15 minut.

Pokud chcete shromáždit průměry zatížení pro konkrétní den, řekněme 5. září, musíte jej spustit následujícím příkazem sar:

$ sar -q -f /var/log/sa/sa05 

6. Zpráva o připojených souborových systémech

Statistiky pro aktuální souborové systémy můžete získat pomocí -F možnost

$ sar -F 2 3Linux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 10/06/2020 _x86_64_ (2 CPU)06:30:18  uf  použito MBfsfree  %fs volných  MB ISUSED %iUsed FileSystem06:30:20 30410 5532 15,39 15,39 18245113 166407 0,90/dev/Mapper/CentOS-Root06:30:20 796 218 21,52 21,52 523947 341 0,07/dev/sda106 :30:20 mbfsfree mbfsused %fsused %ufsused ifree iused %iused souborysystém06:30:22 30410 5532 15,39 15,39 18245113 166407 0,90/dev/mapper/centos-root06:30:22 796 218 21,52 21 21 , 52 523947 341 0,07/Dev/SDA106:30:22 MBFSFree MBFSUSED %FSUSED %Ufsused ifree IUSUSED root06:30:24          796       218     21,52     21,52    523947       341      0,07 /dev/sda1Summary MBfs free    SUSED %FSUSED %ufsused ifree IUSED %iUsed FileSystemSummary 30410 5532 15,39 15,39 18245113 166407 0,90/dev/mapper/centos-rotsummary 796 218 21,52 21,52 523947 341 0,07/dev/sda1  

Pokud chcete shromáždit připojené souborové systémy pro určitý den, řekněme 10. června.

$ sar -F -f /var/log/sa/sa10 

7. Report podrobnosti o inode, tabulkách jádra a tabulkách souborů

Podrobnosti o inode, procesech, vláknech jádra a tabulkách souborů používaných systémem můžete získat pomocí příkazu sar s -v možnost.

$ sar -v 2 3Linux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 10/06/2020 _x86_64_ (2 CPU)06:57:23 n    dentunusd  ino Pty-NR06:57:25 160833 2400 132081 306:57:27 160833 2400 132081 306:57:29 160833 2400 132081 3A Everage:160833 2400 132081 3  

Kde:

dentunusd :počet nepoužitých položek mezipaměti v mezipaměti adresáře

číslo-souboru: počty používaných popisovačů souborů

inode-nr: manipulátory inodů

pty-nr :pseudo terminály

8. Zkontrolujte úzké hrdlo CPU

Pomocí příkazu sar můžete zjistit, které číslo přerušení může způsobovat úzké hrdlo CPU.

V níže uvedeném příkladu #9 bylo nejvyšší vylučující systémové přerušení #0 .

$ sar -I XALL 2 1002:07:10 AM INTR intr/s02:07:12 AM 0 992.5702:07:12 AM 1 0.0002:07:12 AM 2 0.0002:07:12 AM 3 0.0 :07:12 AM 4 0,0002:07:12 AM 5 0,0002:07:12 AM 6 0,0002:07:12 AM 7 0,0002:07:12 AM 8 0,0002:07:12 AM 9350,50 

Užitečné pro vás budou také podrobnosti v souboru '/proc/interrupts'. Přerušení na chvíli zastaví zpracování, aby mohlo dojít k I/O nebo jiným operacím. Zpracování se obnoví po provedení konkrétní operace. Je tedy velmi důležité, aby každé zařízení nainstalované ve stroji bylo vybaveno nastavením přerušení, které není v rozporu s nastavením používaným hardwarem a dalšími periferiemi.

$ sudo kočka /proc /přerušuje CPU0 CPU1 0:48 0 Io-Apic-Adge Timer 1:54 0 I-APIC-AIDE I8042 8:1 0 IO-APIC-AIDE RTC0 9:0 0 IO IO -Apic-Fasteoi ACPI 12:35 116 Io-Apic-Edge I8042 14:0 0 I-APIC-ADA ATA_PIIX 15:0 0 I-APIC-AREG ATA_PIIX 16:118 2513 -MMI-Adge PCIE PME, PCIeHP 25:0 0 PCI-MSI-EDIE PCIE PME, PCIeHP 26:0 0 PCI-MSI-EDIE PCIE, PCIeHP 27:0 0 PCI-MSI-EDED PCIE PME, PCIEHPNMI:0 0 Nemaskovatelná přerušeníLOC:  35392807   14792833   Přerušení místního časovačeSPU:          0          0   Rušivá přerušeníPMI:        4 Přerušení výkonu   0    2 9 Přerušení   0    2 9 I   7 praskne...

První sloupec odkazuje na číslo IRQ. Další sloupec uvádí typ přerušení a poslední sloupec obsahuje název zařízení, které se nachází v IRQ.

9. Hlásit statistiky sítě

Chcete-li získat zprávu o statistikách sítě, použijte příkaz sar s -n volba. Například:

$ sar -n DEVLinux 3.10.0-1127.10.1.el7.x86_64 (localhost.localdomain) 10/06/2020 _x86_64_ (2 CPU)19:20:23 IFACE rxpck/s tx /s txkB/s rxcmp/s txcmp/s rxmcst/s19:20:24 ens192 11,00 4,00 1,80 2,75 0,00 0,00 0,0019:20:24 do 79,00 00 43,62 43,62 0,00 0,00 0,00Průměr:IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/sPrůměr:11,001 ens192 2,75 0,00 0,00 0,00Průměr:lo 79,00 79,00 43,62 43,62 0,00 0,00 0,00 

Kde:

DEV :jsou hlášeny statistiky ze síťových zařízení

FACE :název rozhraní (Ve výše uvedeném příkladu:ens192)

rxpck/s / txpck/s :celkový počet přijatých/vyslaných paketů za sekundu

Existují některé další možnosti než DEV, například:

NFS :zobrazit aktivity klienta NFS

PONOŽKA :označte používané zásuvky

TCP :označte síťový provoz TCP v4

UDP :označte síťový provoz UDP v4

Pokud chcete shromáždit statistiky sítě za konkrétní den, například 9. června, musíte to spustit následovně:

$ sar -n DEV -f /var/log/sa/sa09 

Graf Sar

Výše uvedené části vysvětlily způsob použití sar z terminálu. kSar je GUI aplikace založená na java, která vizualizuje vaše data sar.

Instalace ksar:

$ sudo apt install openjdk-11-jdk 
$ sudo yum install epel-release$ sudo yum install java-openjdk 

Stáhněte si ksar a rozbalte jej:

$ wget https://sourceforge.net/projects/ksar/files/latest/download$ mv download kSar.zip$ unzip kSar.zip 

Nyní cd do adresáře

$ cd kSar-* 

Nyní udělejte soubor run.sh spustitelný a spusťte jej jako root.

$ chmod +x run.sh$ sudo su./run.sh 

Nyní můžeme otestovat spuštěním místního příkazu. Jdeme do Data> Spustit místní příkaz a tam můžeme použít výchozí příkaz.

Dále se můžeme podívat na grafy kliknutím na levý panel a pohledem na zobrazený graf na pravé straně:

Je také možné načíst grafy ze souboru. Nejprve musíme spustit sar:

LC_ALL=C sar -A> /tmp/sar.data.txt 

A pak v nabídkách vybereme Data> Načíst z textového souboru a vyhledejte soubor v /tmp nebo kdekoli jsme jej uložili.

Závěr

V tomto tutoriálu jsme se naučili, jak lze použít příkaz sar, abyste si všimli využití systémových prostředků a zlepšili výkon při práci s operačním systémem.

Z příkladů sar je jasné, že je to skvělý nástroj pro shromažďování, hlášení nebo ukládání informací o aktivitě systému.

Děkujeme za přečtení a zanechte prosím svůj návrh v sekci komentářů níže.

Související čtení:10 příkazů Linux iostat pro hlášení statistik CPU a I/O 

Linux
  1. Linux Tee Command s příklady

  2. Příkaz linuxové hlavy s příklady

  3. JQ Command v Linuxu s příklady

  1. wc Linux Command s příklady

  2. Linux řazení příkazů s příklady

  3. Echo Command v Linuxu (s příklady)

  1. man Command v Linuxu s příklady

  2. Příkaz AWK v Linuxu s příklady

  3. Curl Command v Linuxu s příklady