Vet hvor mye en individuell prosess eller systemomfattende bruker CPU eller minne.
Som systemadministrator må du ofte håndtere en hendelse der applikasjonen er treg eller ikke reagerer på grunn av høy CPU/minne/nettverksutnyttelse. Hvis serveren er vert for bare én prosess, er det lett å finne ut når prosessen bruker alle ressursene. Tenk deg imidlertid en delt server der flere tjenester kjører, og du må finne hvilken som spiser alle ressursene.
Det er mange overvåkingsprogramvare som gjør dette rett ut av esken. Men hvis du ikke har en eller ser etter en kommandobasert løsning, så er du her. De er alle GRATIS!
Innholdsfortegnelse
topp
Det kan være lurt å starte med å se på topp- eller htop-resultatet for å se prosessoversikten.
Som du kan se nedenfor, gir det en utmerket ide om hva alle prosesser bruker. Hvis du ser på den første, som er MySQL tar 11,9% av CPU og 2,5% av CPU.
top - 11:57:33 up 0 min, 1 user, load average: 3.69, 0.96, 0.32 Tasks: 165 total, 2 running, 113 sleeping, 0 stopped, 0 zombie %Cpu(s): 21.0 us, 5.5 sy, 0.0 ni, 70.5 id, 1.7 wa, 0.0 hi, 1.3 si, 0.0 st KiB Mem : 7637308 total, 5802888 free, 849512 used, 984908 buff/cache KiB Swap: 0 total, 0 free, 0 used. 6495648 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1986 netdata 20 0 1738856 191560 22948 S 11.6 2.5 0:02.30 mysqld 3021 www-data 20 0 255288 78420 55484 S 6.6 1.0 0:01.55 php-fpm 3138 www-data 20 0 253096 79780 59228 S 6.6 1.0 0:00.92 php-fpm 3153 www-data 20 0 255116 79088 56472 S 5.0 1.0 0:00.70 php-fpm 3037 www-data 20 0 257200 81088 56216 S 4.3 1.1 0:01.50 php-fpm 3048 www-data 20 0 257088 78740 55380 S 4.3 1.0 0:01.46 php-fpm 3054 www-data 20 0 254160 72168 52108 S 3.7 0.9 0:01.32 php-fpm 3135 www-data 20 0 255084 75912 54836 S 3.7 1.0 0:00.91 php-fpm 3051 www-data 20 0 254096 73804 51964 S 3.0 1.0 0:01.38 php-fpm 2962 www-data 20 0 45280 7284 3488 R 2.0 0.1 0:00.22 openresty 1062 netdata 20 0 338748 76144 6720 S 1.0 1.0 0:01.31 netdata 1702 netdata 20 0 21852 4232 2352 S 1.0 0.1 0:00.34 apps.plugin 1729 netdata 20 0 18636 3280 2764 S 0.7 0.0 0:00.05 bash 1980 netdata 20 0 62008 12896 5796 S 0.7 0.2 0:00.14 redis-server 11 root 20 0 0 0 0 I 0.3 0.0 0:00.14 rcu_sched 1007 root 20 0 1347424 74524 38872 S 0.3 1.0 0:00.92 dockerd 1857 root 20 0 10600 5564 4276 S 0.3 0.1 0:00.03 containerd-shim 2045 root 20 0 9948 6028 5016 S 0.3 0.1 0:00.14 forego 2934 root 20 0 13616 8760 5928 S 0.3 0.1 0:00.07 docker-gen 2966 systemd+ 20 0 25784 7924 2340 S 0.3 0.1 0:00.06 nginx
Toppen er installert på nesten all Linux-distribusjon.
Når du identifiserer den mistenkte, kan det være lurt å fokusere på den prosessen i stedet for alt som du så ovenfor. Du kan fortsatt bruke toppkommando, men med noen argumenter.
La oss si at du kjenner prosess-ID (PID); du kan bruke kommandoen nedenfor.
topp -p $PID
Nedenfor et eksempel på topp -p 3102
top - 11:59:56 up 3 min, 1 user, load average: 0.72, 0.70, 0.31 Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie %Cpu(s): 7.1 us, 2.9 sy, 0.0 ni, 89.1 id, 0.3 wa, 0.0 hi, 0.7 si, 0.0 st KiB Mem : 7637308 total, 5802024 free, 783672 used, 1051612 buff/cache KiB Swap: 0 total, 0 free, 0 used. 6555636 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3102 www-data 20 0 329500 82376 60640 S 0.0 1.1 0:03.35 php-fpm
Du kan også bruke grep med topp. Nedenfor er et eksempel på kontroll av Docker-bruk.
[email protected]:~# top | grep docker 1007 root 20 0 1347424 74524 38872 S 0.3 1.0 0:01.38 dockerd 2934 root 20 0 14676 9652 5928 S 0.3 0.1 0:00.54 docker-gen 1007 root 20 0 1347424 74524 38872 S 0.3 1.0 0:01.39 dockerd 1007 root 20 0 1347424 74524 38872 S 1.0 1.0 0:01.42 dockerd 2934 root 20 0 14740 9652 5928 S 0.3 0.1 0:00.55 docker-gen 2934 root 20 0 14740 9652 5928 S 0.3 0.1 0:00.56 docker-gen
htop
Ligner på toppen, men med mer informasjon. Som du kan, fikk den kommandokolonnen, som er nyttig for å identifisere prosessbanen. Og den er også fargerik.
htop er kanskje ikke installert som standard, men du kan alltid gjøre det som nedenfor.
Installer htop på Ubuntu
apt-get install htop
Installer htop på CentOS/RHEL 8.x
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm dnf update dnf install htop
blikk
Som navnet sier, får du en systemutnyttelsesvisning på en enkelt skjerm. Kjørende prosesser er sortert etter CPU-utnyttelse.
Du kan installere blikk på CentOS 8 ved å bruke DNF som nedenfor.
dnf install glances
for CentOS7 kan du bruke YUM
yum install glances
på toppen
En liknende til de ovenfor oppførte, men med en strålende funksjon for å registrere utdataene i en fil slik at du kan se dem senere. Tenk deg at det er et mønster av å ha et problem i et bestemt tidsvindu. Du kan planlegge å skrive utdata i en fil gjennom crontab eller annet, og senere kan du spille av.
Slik registrerer du utdata i en fil:
atop -w filename
og for å spille av:
atop -r filename
Den støtter flere argumenter som intervall, samples osv. og jeg vil sterkt anbefale å ta en titt på man-siden.
Hvis du bare er interessert i sanntids feilsøking, så bare kjør på toppen og du bør se som nedenfor.
Du kan installere på toppen som nedenfor.
dnf install atop
ps
La oss sjekke ps-kommandoen nå.
Du kan bruke ps-kommandoen med PID for å skrive ut CPU- og minneutnyttelsen.
ps -p $PID -o %cpu,%mem
Utgangen skal se slik ut.
[email protected]:~# ps -p 1048 -o %cpu,%mem %CPU %MEM 0.2 3.0 [email protected]:~#
nmon
Interaktivt kommandolinjeovervåkingsverktøy for CPU, minne, disker, nettverk, NFS og virtuelt minne. For å se den øverste prosessen (ved bruk), kan du utføre nmon og trykke på t-knappen.
Du kan installere nmon som nedenfor.
dnf install nmon
Monit
Monit er en nettbasert og kommandolinje åpen kildekode-løsning for å overvåke serverressurser, demoner, filer, kataloger, filsystemer, etc.
Monit har også en kul widget.
Dens lette overvåkingsprogramvare. Men det er mer å utforske her.
Monitorix
Et lett åpen kildekode-verktøy for å overvåke Linux-serveren. Monitorix har innebygd HTTP slik at du kan sjekke bruken og andre ting på nettet. Noen av de andre bruksrapportene inkluderer:
- Kernal/temperatur
- Filsystem og I/O
- Nettverkstrafikk
- Apache/Mail/FTP/Nginx
- MySQL/Lakk/Memcached
Monitorix tilbyr også varslingskonfigurasjon slik at du kan bli varslet når ting ikke stemmer. Det vil være et godt valg når du skal administrere skybaserte servere og ser etter en proaktiv overvåkingsløsning.
Nettdata
Nettdata er en sanntids ytelsesovervåking for systemressurser, applikasjoner, webservere, databaser, DNS, e-post, maskinvaresensorer og mye mer. Det er åpen kildekode og det er enkelt å komme i gang. Alle dataene samles inn, lagres og streames slik at du kan visualisere interaktivt. Data samles inn hvert sekund, slik at du aldri går glipp av noe.
Elsket av mange industriledere.
Så det du venter på, prøv å ta kontroll over Linux-serverne dine.
btop
btop er en hendig ressursmonitor som er fullstendig interaktiv med et vakkert brukergrensesnitt som hjelper deg med å administrere Linux-serverne.
Du kan enkelt visualisere prosessene i en trevisning, filtrere fra prosesslisten og administrere ressurssvinene. btop kommer også med en automatisk skaleringsgraf som viser nettverksbruk.
Dessuten kan du også sjekke diskhastighet og fullføre I/O-aktivitet.
Det er mer til dette du kan oppleve på Linux, FreeBSD og macOS.
Konklusjon
Jeg håper verktøyene ovenfor hjelper deg med å visualisere serverbruken i sanntid, slik at du kan ta nødvendige tiltak. Hvis du nettopp har startet som systemadministrator og ønsker å få praktisk opplæring, så sjekk ut dette Udemy kurs.