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 tool).
# 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:
- System Buffer activity
- Informatie over system calls
- Block device information
- Overall paging information
- Semaphore and memory allocation information
- 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
Hoe haal ik statistieken op van een bepaalde dag met behulp van SAR in linux
# 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
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
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.