Sådan produceres og leveres systemaktivitetsrapporter ved hjælp af Linux-værktøjssæt - Del 3


Som systemingeniør bliver du ofte nødt til at producere rapporter, der viser udnyttelsen af dit systems ressourcer for at sikre, at: 1) de udnyttes optimalt, 2) forhindrer flaskehalse og 3) sikrer skalerbarhed blandt andre grunde.

Udover de velkendte native Linux-værktøjer, der bruges til at kontrollere disk-, hukommelses- og CPU-brug - for at nævne et par eksempler, tilbyder Red Hat Enterprise Linux 7 yderligere to værktøjssæt til at forbedre de data, du kan indsamle til dine rapporter: sysstat og dstat .

I denne artikel beskriver vi begge dele, men lad os først starte med at gennemgå brugen af de klassiske værktøjer.

Native Linux-værktøjer

Med df vil du være i stand til at rapportere diskplads og inode-brug af filsystemet. Du skal overvåge begge dele, fordi pladsmangel forhindrer dig i at være i stand til at gemme flere filer (og måske endda få systemet til at gå ned), ligesom at løbe tør for inoder betyder, at du ikke kan linke yderligere filer med deres tilsvarende data strukturer, hvilket giver den samme effekt: du kan ikke gemme disse filer på disken.

# df -h 		[Display output in human-readable form]
# df -h --total         [Produce a grand total]
# df -i 		[Show inode count by filesystem]
# df -i --total 	[Produce a grand total]

Med du kan du estimere filpladsforbrug efter enten fil, bibliotek eller filsystem.

Lad os f.eks. Se, hvor meget plads der bruges i/home-biblioteket, som inkluderer alle brugerens personlige filer. Den første kommando returnerer det samlede rum, der i øjeblikket bruges af hele/hjemmebiblioteket, mens den anden også viser en adskilt liste efter underkatalog:

# du -sch /home
# du -sch /home/*

Gå ikke glip af:

  1. 12 ‘df’ kommandoeksempler til kontrol af Linux-diskpladsbrug
  2. 10 'du' kommandoeksempler til at finde diskbrug af filer/kataloger

Et andet værktøj, der ikke kan mangle i dit værktøjssæt, er vmstat. Det giver dig mulighed for hurtigt at se oplysninger om processer, CPU- og hukommelsesforbrug, diskaktivitet og mere.

Hvis det køres uden argumenter, vil vmstat returnere gennemsnit siden sidste genstart. Mens du muligvis bruger denne form for kommando en gang imellem, vil det være mere nyttigt at tage en vis mængde systemudnyttelseseksempler, den ene efter den anden, med en defineret tidsadskillelse mellem prøverne.

For eksempel,

# vmstat 5 10

returnerer 10 prøver taget hvert 5. sekund:

Som du kan se i ovenstående billede, deles output fra vmstat med kolonner: procs (processer), hukommelse, swap, io, system og cpu. Betydningen af hvert felt findes i afsnittene FELTBESKRIVELSE på mandsiden til vmstat.

Hvor kan vmstat komme til nytte? Lad os undersøge systemets opførsel før og under en yum-opdatering:

# vmstat -a 1 5

Bemærk, at når filer ændres på disk, øges mængden af aktiv hukommelse, og antallet af blokke, der er skrevet til disk (bo), og CPU-tiden, der er afsat til brugerprocesser (os), øges også.

Eller under lagringsprocessen for en stor fil direkte på disken (forårsaget af dsync):

# vmstat -a 1 5
# dd if=/dev/zero of=dummy.out bs=1M count=1000 oflag=dsync

I dette tilfælde kan vi se et endnu større antal blokke skrives til disk (bo), hvilket man kunne forvente, men også en stigning i mængden af CPU-tid, som den skal vente på, at I/O-operationer er afsluttet før behandlingsopgaver (wa).

Gå ikke glip af: Vmstat - Linux Performance Monitoring

Andre Linux-værktøjer

Som nævnt i indledningen til dette kapitel er der andre værktøjer, som du kan bruge til at kontrollere systemstatus og -udnyttelse (de leveres ikke kun af Red Hat, men også af andre større distributioner fra deres officielt understøttede arkiver).

Sysstat-pakken indeholder følgende hjælpeprogrammer:

  1. sar (indsamle, rapportere eller gemme systemaktivitetsoplysninger).
  2. sadf (vise data indsamlet af sar i flere formater).
  3. mpstat (rapportprocessorrelateret statistik).
  4. iostat (rapporter CPU-statistik og I/O-statistik for enheder og partitioner).
  5. pidstat (rapportstatistik for Linux-opgaver).
  6. nfsiostat (rapport input/output statistik for NFS).
  7. cifsiostat (rapport CIFS-statistik) og
  8. sa1 (indsaml og gem binære data i systemets daglige datafil.
  9. sa2 (skriv en daglig rapport i/var/log/sa biblioteket) værktøjer.

der henviser til, at dstat tilføjer nogle ekstra funktioner til funktionaliteten fra disse værktøjer sammen med flere tællere og fleksibilitet. Du kan finde en samlet beskrivelse af hvert værktøj ved at køre henholdsvis yum info sysstat eller yum info dstat eller kontrollere de enkelte mandsider efter installationen.

Sådan installeres begge pakker:

# yum update && yum install sysstat dstat

Hovedkonfigurationsfilen for sysstat er/etc/sysconfig/sysstat. Du finder følgende parametre i den fil:

# How long to keep log files (in days).
# If value is greater than 28, then log files are kept in
# multiple directories, one for each month.
HISTORY=28
# Compress (using gzip or bzip2) sa and sar files older than (in days):
COMPRESSAFTER=31
# Parameters for the system activity data collector (see sadc manual page)
# which are used for the generation of log files.
SADC_OPTIONS="-S DISK"
# Compression program to use.
ZIP="bzip2"

Når sysstat er installeret, tilføjes to cron-job og aktiveres i /etc/cron.d/sysstat. Det første job kører systemaktivitetsregnskabsværktøjet hvert 10. minut og gemmer rapporterne i/var/log/sa/saXX, hvor XX er dagen i måneden.

Således vil/var/log/sa/sa05 indeholde alle systemaktivitetsrapporter fra den 5. i måneden. Dette forudsætter, at vi bruger standardværdien i HISTORY-variablen i konfigurationsfilen ovenfor:

*/10 * * * * root /usr/lib64/sa/sa1 1 1

Det andet job genererer en daglig oversigt over procesregnskab kl. 23:53 hver dag og gemmer det i/var/log/sa/sarXX-filer, hvor XX har samme betydning som i det foregående eksempel:

53 23 * * * root /usr/lib64/sa/sa2 -A

For eksempel vil du muligvis sende systemstatistikker fra kl. Opret diagrammer eller grafer):

# sadf -s 09:30:00 -e 17:30:00 -dh /var/log/sa/sa06 -- | sed 's/;/,/g' > system_stats20150806.csv

Du kan alternativt bruge flaget -j i stedet for -d i sadf-kommandoen ovenfor til at udføre systemstatistikken i JSON-format, hvilket f.eks. Kan være nyttigt, hvis du har brug for at forbruge dataene i en webapplikation.

Lad os endelig se, hvad dstat har at tilbyde. Bemærk, at hvis køres uden argumenter, antager dstat -cdngy som standard (forkortelse for henholdsvis CPU, disk, netværk, hukommelsessider og systemstatistik), og tilføjer en linje hvert sekund (udførelse kan afbrydes når som helst med Ctrl + C) :

# dstat

For at sende statistikken til en .csv-fil skal du bruge –output-flag efterfulgt af et filnavn. Lad os se, hvordan dette ser ud på LibreOffice Calc:

Jeg råder dig på det kraftigste til at tjekke mandsiden til sysstat i PDF-format for at gøre det lettere for dig at læse. Du finder flere andre muligheder, der hjælper dig med at oprette brugerdefinerede og detaljerede systemaktivitetsrapporter.

Gå ikke glip af: Sysstat - Linux Usage Activity Monitoring Tool

Resumé

I denne vejledning har vi forklaret, hvordan man bruger både native Linux-værktøjer og specifikke hjælpeprogrammer leveret med RHEL 7 til at producere rapporter om systemudnyttelse. På et eller andet tidspunkt vil du stole på disse rapporter som bedste venner.

Du vil sandsynligvis have brugt andre værktøjer, som vi ikke har dækket i denne vejledning. I så fald er du velkommen til at dele dem med resten af samfundet sammen med eventuelle andre forslag/spørgsmål/kommentarer, du måtte have - ved hjælp af nedenstående formular.

Vi ser frem til at høre fra dig.