Voorbeelden van het gebruik van het SAR commando voor systeem monitoring in Linux

, Author

System Activity Reporter is een belangrijk hulpmiddel dat systeembeheerders helpt om een overzicht te krijgen van de server machine met de status van verschillende belangrijke metrieken op verschillende tijdstippen.

Als je op dit moment een probleem hebt met het systeem, alsof sommige van je klanten niet in staat zijn om bepaalde gegevens uit de database te halen. Het eerste ding dat de meeste van de Linux-systeembeheerders doen is om hetzelfde probleem te herinneren wanneer het zich eerder heeft voorgedaan, en Als u zich herinnert de dag van zijn vorige optreden dan kun je gemakkelijk vergelijken de interne systeemstatistieken met de huidige statistieken.

SAR is erg behulpzaam om precies dat te doen.

Het eerste wat we moeten doen is controleren en bevestigen of je SAR utility op de machine hebt geïnstalleerd. Dit kan worden gecontroleerd door een lijst te maken van alle rpm’s en naar dit hulpprogramma te zoeken.

SAR is een van de hulpprogramma’s binnen sysstat. Je kunt het gemakkelijk downloaden en installeren op je machine via YUM. (Maar ja, maak je geen zorgen want de meeste distributies worden geleverd met sysstat toolsmiley).

# yum install sysstat

Ja, maar zorg ervoor dat je epel, rpmformge repository hebt ingeschakeld voor installatie. Anders zal je distributie DVD een mooie plaats zijn om naar het pakket te zoeken.

SAR (System Activity Reporter) geeft informatie over de volgende zaken:

  1. System Buffer activity
  2. Informatie over system calls
  3. Block device information
  4. Overall paging information
  5. Semaphore and memory allocation information
  6. CPU utilization and process report

Het belangrijkste dat we moeten begrijpen met betrekking tot SAR is dat, alles wordt gedaan met behulp van een cron. In veel Linux distributies heb je standaard een bestand met de naam /etc/cron.d/sysstat.

Laten we eens kijken hoe SAR echt werkt.

Als we aan systeemmonitoring gaan denken, dan moet het gereedschap alle gegevens over de verschillende aspecten van het systeem hebben en moet het alle tijdsintervallen bestrijken. Dat betekent dat een bewakingssysteem in staat moet zijn om de statistieken van de machine voor een bepaalde tijd te leveren.

Er is geen andere manier, dan alle metrieken en statistieken van de machine op een bepaald tijdsinterval te nemen. Het verkorten van het tijdsinterval voor het verzamelen van de statistieken zal de hoeveelheid gedetailleerde statistieken die we hebben vergroten (omdat we meer gegevens over het systeem zullen hebben).

SAR doet precies dat. sar neemt de statistieken van verschillende aspecten van de machine op een bepaald tijdsinterval. SAR loopt dus via CRON.

# cat /etc/cron.d/sysstat# draai system activity accounting tool elke 10 minuten*/10 * * * root /usr/lib64/sa/sa1 1 1# genereer een dagelijkse samenvatting van proces accounting op 23:5353 23 * * root /usr/lib64/sa/sa2 -A
  • Dus uit bovenstaand cron-bestand voor SAR kan worden opgemaakt dat het script “sa1”, dat zich bevindt in “/usr/lib64/sa/”, om de 10 minuten wordt uitgevoerd
  • En ook een script /usr/lib64/sa/sa2 wordt uitgevoerd aan het eind van de dag om ongeveer 23..53

Dus de eerste cron entry voor SAR(/usr/lib64/sa/sa1) zal elke 10 minuten lopen die op zijn beurt het sadc hulpprogramma aanroept om systeemstatistieken te verzamelen en op te slaan in een binair bestand (een bestand voor een dag)

En de tweede cron entry zal de gehele inhoud van dat binaire bestand in een ander tekstbestand dumpen, en wist gegevens ouder dan een bepaald aantal dagen, normaal 7 dagen standaard (die wordt vermeld in het volgende bestand),

# cat /etc/sysconfig/sysstat# Hoe lang logbestanden te bewaren (dagen), maximum is een maandHISTORY=7

Dus u kunt die HISTORY-vermelding gemakkelijk wijzigen door het bestand te bewerken.

Dus hoewel de systeemstatistieken elke 10 minuten via cron worden verzameld (pas cron aan om elke 1 minuut te lopen voor nauwkeurigere informatie) Als u de statistieken wilt zien, dan moet u het commando zoals hieronder uitvoeren.

De eenvoudige uitvoer van het sar commando is zoals hieronder wordt getoond.

12:00:01 AM CPU %user %nice %system %iowait %steal %idle12: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 91.7312:03:01 AM alle 61.65 0.00 0.70 0.00 0.00 37.6612:04:01 AM alle 57.85 0.00 0.82 0.00 0.00 41.3412:05:01 AM alle 4.25 0.00 0.41 0.00 0.00 95.3412:06:01 AM alle 4.20 0,00 0,22 0,00 0,00 95,5812:07:01 AM alle 5,05 0,00 0,33 0,00 0,00 94,6312:08:01 AM alle 4,76 0,00 0,06 0,00 0,00 95,1812:09:01 AM alle 37.57 0.00 0.37 0.00 0.00 62.0512:10:01 AM all 70.04 0.00 0.80 0.00 0.00 29.1612:11:01 AM all 5.03 0.00 0.12 0.00 0.00 94.84

Het is te zien aan de uitvoer dat het me de uitvoer van de verzamelde statistieken voor elke minuut rapporteert (wat betekent dat ik mijn cron op 1 minuut interval heb), en de details van de hele dag zal laten zien (of de verzamelde details zal laten zien tot wanneer je het commando hebt getypt).

Uitleg van de uitvoer van SAR commando

%user: Dit toont de totale tijd die de processor wordt besteed aan verschillende processen YCX5UKN5ZKEJ

%sys: dit toont het percentage van de tijd besteed door de processor voor het besturingssysteem taken (omdat de vorige gebruiker toont de tijd besteed voor de gebruiker einde proces)

%iowait: de naam iowait zelf suggereert dat de tijd besteed door processor te wachten op apparaten (input en output)

%nice: De meesten van jullie zullen wel weten dat een gebruiker de prioriteit van een proces in Linux kan veranderen door de nice waarde in Linux te veranderen. Deze tabel toont de tijdsbesteding van CPU voor processen waarvan de nice waarde is gewijzigd.

%steal: Deze kolom toont de hoeveelheid tijd besteed door een CPU (die gevirtualiseerd is), voor bronnen van de fysieke CPU

%idle: Dit suggereert de idle tijd besteed door de processor.

Bestandaard slaat sar al zijn gegevens op onder /var/log/sa/ en een dagen worden genoemd zoals hieronder getoond.

s01 – voor de eerste dag van de maand

s02 – voor de tweede dag van de maand

s03,s04..enzovoort.

-d optie in SAR commando

Deze -d optie kan worden gebruikt om elke activiteit te rapporteren die gerelateerd is aan verschillende apparaten die aan het systeem zijn gekoppeld (block devices). Een typische uitvoer van het sar-commando met -d optie wordt hieronder getoond.

12:00:01 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util12: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 0.00 0.00 0.00 0.00 0.0012:01:01 AM dev3-64 0.00 0.00 0.00 0.00 0.00 0.00 0.0012:01:01 AM dev8-0 55.62 9.98 8317.87 149.72 13.68 245.96 2.61 14.5212:01:01 AM dev8-16 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0012:02: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.0012:03:01 AM dev3-64 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

DEV: deze kolom noemt apparaten op de machine, volgens major en minor nummers van een Linux block device. U kunt dit controleren door een ls -l te doen in de /dev directory. zoals hieronder aangegeven.

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

in de bovenstaande “ls -l” uitut voor “sda”, major number is “8”,en minor number is “0”…Dus u kunt gemakkelijk de schijf identificeren die in de uitvoer van het sar commando wordt genoemd.

tps: tps staat voor transfer per seconde, dus het toont de transfer per seconde naar dat specifieke apparaat

rd_sec/s: dit toont u het totale aantal sectoren op dat apparaat dat wordt gelezen

wr_sec/s: als rd_sec/s sectoren is die per seconde worden gelezen, dan is wr_sec natuurlijk sectoren die per seconde worden geschreven.

avgrq-sz: deze kolom toont het gemiddelde.

await: dit toont het totale aantal tijd dat de processor wachtte op verzoeken betreffende IO

%util: deze kolom toont het gebruik van cpu in percentage wanneer het verzoek werd gegenereerd

Geheugengebruik tonen in SAR commando

de -r optie beschikbaar in sar commando is zeer nuttig. Het toont het geheugen, swap, cachegeheugen enz. op elk interval of vereiste tijdsinterval.

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 2424 777592 1075980 364 0.03 36003:00:01 AM 608980 1488172 70.96 2424 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
in de bovenstaande uitvoer spreken de meeste kolommen voor zich (en de meeste uitgangen zijn in KB).
kbmemfree: dit toont de hoeveelheid vrij geheugen
Kbmemused: gebruikt geheugen
%memused: percentage van gebruikt geheugen
kbbuffers: buffergeheugen gebruikt door de kernel.
kbcached: cache geheugen gebruikt door de kernel
alle andere items voor geheugen zijn swap(vrij,gebruikt,percentage etc)

Hoe haal ik statistieken op van een bepaalde dag met behulp van SAR in linux

Zoals eerder vermeld zijn alle statistieken voor een bepaalde dag opgeslagen in sa<day of month> wise. Dus als ik mijn statistieken voor de 27e dag van de maand wil weten, kan ik die gemakkelijk vinden zoals hieronder getoond.
# sar -f /var/log/sa/sa27Linux 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.86
in het bovenstaande commando hebben we /var/log/sa/sa27 als argument doorgegeven omdat ik statistieken voor die dag nodig had..geef de sa<dag van maand> door zoals u in het bovenstaande commando

Hoe haal ik SAR-metriek op voor een specifiek tijdstip op een bepaalde datum

dit kan worden bereikt door een ander argument door te geven zoals hieronder wordt getoond.

# 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 alle 2.72 1.06 0.75 1.09 0.04 94.33Gemiddelde: alle 2.76 0.21 0.70 1.11 0.04 95.18
In het bovenstaande voorbeeld heb ik sar gevraagd om de metingen op te halen tussen 2:20:00 en 3:20:00 op de 27e dag van de maand
Je kunt zelfs een andere metrische optie doorgeven samen met het tijdsinterval…zoals -d of -r
Heb je het gemerkt? SAR kan ons nauwkeurig de machine statistieken laten zien van een bepaalde dag op een bepaald tijdstip…dus het is veel gemakkelijker om de bottlenecks te identificeren.
Gebruik -A optie samen met het bovenstaande commando zal ALLES laten zien (alle statistieken verzameld door sar).
sar -f /var/log/sa/sa27 -s 02:20:00 -e 03:20:00 -A
De uitvoer zal uitgebreid zijn. en u zult bijna alles in sar krijgen van die -A optie op uw scherm!

Toon netwerk statistieken met behulp van sar commando

sar commando toont zelfs netwerk statistieken. Dit kan worden gedaan door de -n DEV optie in sar commando te gebruiken.

# sar -n DEVLinux 2.6.18-194.el5xen (archive.r) 11/27/2012 02:20:01 AM IFACE rxpck/s txpck/s rxbyt/s txbyt/s rxcmp/s txcmp/s rxmcst/s02:30:01 AM lo 0.01 0.01 0.77 0.77 0.00 0.00 0.0002:30:01 AM eth0 12.30 0.12 1285.06 27.59 0.00 0.00 0.0002:30:01 AM eth1 14.45 0.00 1399.34 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.00 0.0002:40:01 AM lo 0.01 0.01 0.77 0.77 0.00 0.00 0.0002:40:01 AM eth0 10.65 0.12 1139.38 27.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: staat voor de nic card interface naam

rxpck/s: dit toont het totaal ontvangen pakketten per seconde

txpck/s:verzonden pakketten per seconde

rxcmp/s: ontvangen gecomprimeerde pakketten

txcmp/s: verzonden gecomprimeerde pakketten

rxmcst/s: multicasted pakketten per seconde.

Enkele andere metriek die kan worden bepaald met sar

-y optie in sar: kan worden gebruikt om tty details te bepalen

-X optie in sar om details van een bepaald proces te krijgen. U moet pid als argument voor deze optie doorgeven.

-n SOCK-optie in sar: deze optie rapporteert alle socketdetails.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.