Exempel på användning av SAR-kommandot för systemövervakning i Linux

, Author

System Activity Reporter är ett viktigt verktyg som hjälper systemadministratörer att få en överblick över servermaskinen med status för olika viktiga mätvärden vid olika tidpunkter.

Om du antar att du har ett problem med systemet för tillfället, till exempel att några av dina kunder inte kan lista vissa data från databasen. Det första som de flesta Linuxsystemadministratörer gör är att minnas samma problem när det tidigare inträffade, och om du kommer ihåg dagen för den tidigare händelsen kan du enkelt jämföra den interna systemstatistiken med den aktuella statistiken.

SAR är till stor hjälp för att göra just detta.

Det första vi behöver göra är att kontrollera och bekräfta om du har SAR-verktyget installerat på maskinen. Vilket kan kontrolleras genom att lista alla rpm och leta efter detta verktyg.

SAR är ett av verktygen inuti sysstat. Du kan enkelt ladda ner och installera det i din maskin mycket enkelt genom YUM. (Men ja, oroa dig inte eftersom de flesta distributioner levereras med sysstat-verktygsmiley).

# yum install sysstat

Ja, men se till att du har epel,rpmformge repository aktiverat för installation. Annars kommer din distributionsdvd att vara ett bra ställe att leta efter paketet.

SAR (System Activity Reporter) ger information om följande saker:

  1. Systembuffertaktivitet
  2. Information om systemanrop
  3. Blockenhetsinformation
  4. Övergripande paging-information
  5. Semaphore och information om minnesallokering
  6. CPU-utnyttjande och processrapport

Den viktigaste saken som vi behöver förstå när det gäller SAR är att, allt görs med hjälp av en cron. Som standard i många Linuxdistributioner har du en fil som heter /etc/cron.d/sysstat.

Låt oss se hur SAR verkligen fungerar.

Om vi börjar tänka på systemövervakning måste verktyget ha varenda data om systemets olika aspekter och måste täcka alla tidsintervall. Vilket innebär att ett övervakningssystem måste kunna tillhandahålla maskinens statistik för en viss tid.

Det finns inget annat sätt än att ta alla mätvärden och all statistik för maskinen vid ett bestämt tidsintervall. Om tidsintervallet för insamling av statistiken minskas kommer vi att få mer detaljerad statistik (eftersom vi får mer data om systemet).

SAR gör just detta. sar tar statistik över olika aspekter av maskinen vid ett bestämt tidsintervall. Så SAR körs genom CRON.

# cat /etc/cron.d/sysstat# kör verktyg för redovisning av systemaktivitet var 10:e minut*/10 * * * * * root /usr/lib64/sa/sa/sa1 1 1# generera en daglig sammanfattning av processredovisning vid 23:5353 23 * * * * root /usr/lib64/sa/sa/sa2 -A

  • Så det kan ses från ovanstående cron-fil för SAR att den kör ”sa1” skriptet som finns på ”/usr/lib64/sa/” var 10:e minut
  • Och kör även ett skript /usr/lib64/sa/sa2 i slutet av dagen runt 23.53

Så den första cronposten för SAR(/usr/lib64/sa/sa1) kommer att köras var 10:e minut vilket i sin tur kommer att anropa sadc-verktyget för att samla in systemstatistik och lagra den i en binär fil (en fil för en dag)

Och den andra cronposten kommer att dumpa allt innehåll i den binära filen till en annan textfil, och rensar data som är äldre än ett visst antal dagar, normalt 7 dagar som standard (vilket nämns i följande fil),

# cat /etc/sysconfig/sysstat# Hur länge loggfiler ska sparas (dagar), maximalt en månadHISTORY=7

Så du kan enkelt ändra den där HISTORY-posten genom att redigera filen.

Så även om systemstatistiken samlas in var 10:e minut genom cron (ändra cron till att köras var 1:e minut för mer exakt information) Om du vill se statistiken måste du köra kommandot enligt nedan.

Den enkla sar-kommandoutgången är som visas nedan.

12:00:01 AM CPU %user %nice %system %iowait %steal %idle12:01:01:01 AM all 73.28 0.00 1.25 0.00 0.00 25.4712:02:01 AM all 7.83 0.00 0.44 0.00 0.00 0.00 91.7312:03:01 AM alla 61.65 0.00 0.70 0.00 0.00 0.00 37.6612:04:01 AM alla 57.85 0.00 0.82 0.00 0.00 0.00 41.3412:05:01 AM alla 4.25 0.00 0.41 0.00 0.00 95.3412:06:01 AM alla 4.20 0.00 0.22 0.00 0.00 0.00 95.5812:07:01 AM alla 5.05 0.00 0.33 0.00 0.00 0.00 94.6312:08:01 AM alla 4.76 0.00 0.06 0.00 0.00 95.1812:09:01 AM alla 37.57 0.00 0.37 0.00 0.00 0.00 62.0512:10:01 AM alla 70.04 0.00 0.80 0.00 0.00 0.00 29.1612:11:01 AM alla 5.03 0.00 0.12 0.00 0.00 0.00 94.84

Det kan ses från utdata att den rapporterar mig utdata av den insamlade statistiken för varje minut (vilket innebär att jag har min cron med 1 minuts intervall), och kommer att visa detaljerna för hela dagen (eller kommer att visa detaljerna som samlats in fram till när du skrev kommandot).

Förstå utdata av SAR-kommandot

%user: Detta visar den totala tiden som processorn spenderar på olika processer YCX5UKN5ZKEJ

%sys: Detta visar den procentuella andel av tiden som processorn spenderar på operativsystemets uppgifter (eftersom föregående user visar den tid som spenderas på användarens slutprocess)

%iowait: Namnet iowait i sig självt antyder att det är tiden som processorn spenderar på att vänta på enheter (in- och utdata)

%nice: De flesta av er vet säkert att en användare kan ändra prioriteringen av en process i Linux genom att ändra nice-värdet i Linux. Den här tabellen visar den tid som processorn spenderar på processer vars nice-värde har ändrats.

%steal: Den här tabellen visar den tid som processorn spenderar på processer vars nice-värde har ändrats: Denna kolumn visar hur mycket tid en CPU (som är virtualiserad) spenderar på resurser från den fysiska CPU:n.

%idle: Detta visar den inaktiva tiden som processorn spenderar.

Som standard lagrar sar alla sina data under /var/log/sa/ och en dag har det namn som visas nedan.

s01 – för månadens första dag

s02 – för månadens andra dag

s03,s04..och så vidare.

-d-alternativet i SAR-kommandot

Det här -d-alternativet kan användas för att rapportera varje aktivitet som är relaterad till olika enheter som är anslutna till systemet (blockenheter). Ett typiskt resultat av sar-kommandot med -d-alternativet visas nedan.

12:00:01 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util12:01:01:01 AM dev3-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00.0012:01:01:01 AM dev3-64 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0012:01:01:01 AM dev8-0 55.62 9.98 8317.87 149.72 13.68 245.96 2.61 14.5212:01:01:01 AM dev8-16 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0012:02:01:01 AM dev3-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0012:02:01 AM dev3-64 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0012:02:01 AM dev8-0 1.55 0.00 35.29 22.70 0.01 7.26 1.86 0.2912:02:01 AM dev8-16 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0012:03:01 AM dev3-0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

DEV: Denna kolumn namnger enheterna på maskinen, i enlighet med major- och minornummer för en Linuxblockenhet. Du kan kontrollera detta genom att göra en ls -l i katalogen /dev. som visas nedan.

brw-r----- 1 root disk 8, 0 Nov 16 16:29 sdabrw-r----- 1 root disk 8, 1 Nov 16 16:29 sda1brw-r----- 1 root disk 8, 2 Nov 16 16:29 sda2

i den ovan visade ”ls -l” outut för ”sda” är major numret ”8” och minor numret ”0”…Så du kan enkelt identifiera den disk som nämns i sar-kommandots utdata.

tps: tps står för transfer per second, så det visar överföringen per sekund till den specifika enheten

rd_sec/s: detta visar det totala antalet sektorer på enheten som läses

wr_sec/s: om rd_sec/s är sektorer som läses per sekund så är wr_sec naturligtvis sektorer som skrivs per sekund.

avgrq-sz: denna kolumn visar genomsnittet

await: detta visar det totala antalet gånger som processorn väntade på förfrågningar om IO

%util: denna kolumn visar användningen av cpu i procent när förfrågan genererades

Show Memory use in SAR command

det -r-alternativet som finns i sar-kommandot är mycket användbart. Det visar minne, swap, cached memory etc. vid varje intervall eller önskat tidsintervall.

02:20:01 AM kbmemfree kbmemused %memused kbbuffers kbcached kbswpfree kbswpused %swpused kbswpcad02:30:01 AM 609500 1487652 70.94 242420 777560 1075980 364 0.03 36002:40:01 AM 609500 1487652 70.94 242424 777568 1075980 364 0.03 36002:50:01 AM 609500 1487652 70.94 242424 777592 1075980 364 0.03 36003:00:01 AM 608980 1488172 70.96 242424 777600 1075980 364 0.03 36003:10:01 AM 608584 1488568 70.98 242424 777628 1075980 364 0.03 36003:20:01 AM 608584 1488568 70.98 242424 777648 1075980 364 0.03 360
i ovanstående utdata förklarar de flesta kolumnerna sig själva (och de flesta utdata är i KB).
kbmemfree: visar mängden ledigt minne
Kbmemused: använt minne
%memused: procentandel av det använda minnet
kbbuffers: buffertminne som används av kärnan.
kbcached: cached memory used by the kernel
all other entries for memory are swap(free,used,percentage etc)

Hur man hämtar mätvärden för en viss dag med hjälp av SAR i linux

Som nämnts tidigare sparas alla mätvärden för en viss dag i sa<day of month> wise. Så om jag vill veta mina mätvärden för den 27:e dagen i månaden kan jag enkelt ta reda på det som visas nedan.
# sar -f /var/log/sa/sa/sa27Linux 2.6.18-194.el5xen (archive.r) 27/11/2012 02:20:01 AM CPU %user %nice %system %iowait %steal %idle02:30:01 AM all 2.58 0.00 0.70 1.12 0.05 95.5502:40:01 AM all 2.56 0.00 0.69 1.05 0.04 95.6602:50:01 AM all 2.64 0.00 0.65 1.15 0.05 95.5003:00:01 AM all 3.27 0.00 0.71 1.12 0.04 94.86
i kommandot ovan har vi lämnat /var/log/sa/sa27 som ett argument eftersom jag behövde statistik för den dagen…passera sa<dag i månaden>som du behöver i kommandot ovan

Hur man hämtar SAR-metriker för en viss tid på ett visst datum

Detta kan uppnås genom att passera ett annat argument som visas nedan.

# sar -f /var/log/sa/sa27 -s 02:20:00 -e 03:20:00Linux 2.6.18-194.el5xen (archive.r) 11/27/2012 02:20:01 AM CPU %user %nice %system %iowait %steal %idle02:30:01 AM all 2.58 0.00 0.70 1.12 0.05 95.5502:40:01 AM all 2.56 0.00 0.69 1.05 0.04 95.6602:50:01 AM all 2.64 0.00 0.65 1.15 0.05 95.5003:00:01 AM all 3.27 0.00 0.71 1.12 0.04 94.8603:10:01 AM alla 2.72 1.06 0.75 1.09 0.04 94.33Genomsnitt: alla 2.76 0.21 0.70 1.11 0.04 95.18
I exemplet ovan bad jag sar att hämta mätvärdena mellan 2:20:00 och 3:20:00 den 27:e dagen i månaden
Du kan även skicka något annat mätalternativ tillsammans med tidsintervallet… såsom -d eller -r
Har du märkt det? SAR kan exakt visa oss maskinstatistiken för en viss dag vid en viss tidpunkt… så det är mycket lättare att identifiera flaskhalsarna.
Användning av -A-alternativet tillsammans med ovanstående kommando kommer att visa ALL (alla mätvärden som samlats in av sar).
sar -f /var/log/sa/sa/sa27 -s 02:20:00 -e 03:20:00 -A
Utmatningen kommer att vara utförlig. och du kommer att få nästan allt som finns i sar från det -A-alternativet på skärmen!

Visa nätverksstatistik med hjälp av sar-kommandot

Sar-kommandot visar även nätverksstatistik. Detta kan göras genom att använda alternativet -n DEV i sar-kommandot.

# sar -n DEVLinux 2.6.18-194.el5xen (archive.r) 27/11/2012 02:20:01 IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s02:30:01 AM lo 0.01 0.01 0.01 0.77 0.77 0.77 0.00 0.00 0.00 0.0002:30:01 AM eth0 12.30 0.12 1285.06 27.59 0.00 0.00 0.00 0.0002:30:01 AM eth1 14.45 0.00 1399.34 0.00 0.00 0.00 0.00 0.00 0.0002:30:01 AM sit0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0002:40:01 AM lo 0.01 0.01 0.01 0.77 0.77 0.00 0.00 0.00 0.0002:40:01 AM eth0 10.65 0.12 1139.38 27.00 0.00 0.00 0.00 0.00 0.0002:40:01 AM eth1 13.96 0.00 1352.87 0.00 0.00 0.00 0.00

IFACE: står för nic-kortets gränssnittsnamn

rxpck/s: detta visar totala antalet mottagna paket per sekund

txpck/s:överförda paket per sekund

rxcmp/s: komprimerade paket som tas emot

txcmp/s: komprimerade paket som överförs

rxmcst/s: paket som multicastas per sekund.

Några andra mätvärden som kan bestämmas med hjälp av sar

-y-alternativet i sar: kan användas för att bestämma tty-uppgifter

-X-alternativet i sar för att få uppgifter om en viss process. Du måste skicka pid som ett argument till detta alternativ.

-n SOCK-alternativet i sar: detta alternativ kommer att rapportera alla detaljer om sockets.

Lämna ett svar

Din e-postadress kommer inte publiceras.