Ved, hvor meget en individuel proces eller hele systemet bruger CPU eller hukommelse.
Som sysadmin skal du ofte håndtere en hændelse, hvor applikationen er langsom eller ikke reagerer på grund af høj CPU/hukommelse/netværksudnyttelse. Hvis serveren kun er vært for én proces, så er det nemt at finde ud af, hvornår processen optager alle ressourcerne. Forestil dig dog en delt server, hvor flere tjenester kører, og du skal finde ud af, hvilken der spiser alle ressourcerne.
Der er mange overvågningssoftware, som gør dette ud af boksen. Men hvis du ikke har en eller leder efter en kommandobaseret løsning, så er du her. De er alle GRATIS!
Indholdsfortegnelse
top
Du vil måske starte med at se på top- eller htop-resultater for at se procesoversigten.
Som du kan se nedenfor, giver det en glimrende idé om, hvad alle processer bruger. Hvis du ser på den første, som er, tager MySQL 11,9% af CPU og 2,5% af 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 installeret på næsten al Linux-distribution.
Når du har identificeret den mistænkte, vil du måske fokusere på den proces i stedet for alt, som du så ovenfor. Du kan stadig bruge topkommando, men med nogle argumenter.
Lad os sige, at du kender proces-id’et (PID); du kan bruge nedenstående kommando.
top -p $PID
Nedenfor et eksempel på top -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å bruge grep med top. Nedenfor er et eksempel på kontrol af Docker-brug.
[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
Svarende til toppen, men med mere information. Som du kan, fik den kommandokolonnen, som er praktisk til at identificere processtien. Og den er også farverig.
htop er muligvis ikke installeret som standard, men du kan altid gø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
blikke
Som navnet siger, får du en systemudnyttelsesvisning på en enkelt skærm. Kørende processer er sorteret efter deres CPU-udnyttelse.
Du kan installere blikke på CentOS 8 ved hjælp af DNF som nedenfor.
dnf install glances
til CentOS7 kan du bruge YUM
yum install glances
ovenpå
En magen til ovenstående, men med en genial funktion til at optage output i en fil, så du kan se dem senere. Forestil dig, at der er et mønster med et problem på et bestemt tidsvindue. Du kan planlægge at skrive outputtet i en fil via crontab eller andet, og senere kan du afspille.
Sådan optager du output i en fil:
atop -w filename
og for at afspille:
atop -r filename
Det understøtter flere argumenter som interval, samples osv., og jeg vil kraftigt anbefale at tage et kig på man-siden.
Hvis du bare er interesseret i fejlfinding i realtid, skal du bare udføre ovenpå, og du skulle se som nedenfor.
Du kan installere ovenpå som nedenfor.
dnf install atop
ps
Lad os tjekke ps-kommandoen nu.
Du kan bruge ps-kommandoen med PID til at udskrive deres CPU- og hukommelsesudnyttelse.
ps -p $PID -o %cpu,%mem
Outputtet skal se sådan ud.
[email protected]:~# ps -p 1048 -o %cpu,%mem %CPU %MEM 0.2 3.0 [email protected]:~#
nmon
Interaktivt kommandolinjeovervågningsværktøj til CPU, hukommelse, diske, netværk, NFS og virtuel hukommelsesudnyttelse. For at se den øverste proces (ved brug), kan du udføre nmon og trykke på t-knappen.
Du kan installere nmon som nedenfor.
dnf install nmon
Monit
Monit er en webbaseret og kommandolinje open source-løsning til at overvåge serverressourcer, dæmoner, filer, mapper, filsystemer osv.
Monit fik også en fed widget.
Dens lette overvågningssoftware. Men der er mere at udforske her.
Monitorix
Et letvægts open source-værktøj til at overvåge Linux-serveren. Monitorix fik indbygget HTTP, så du kan tjekke brugen og andre ting på nettet. Nogle af de andre brugsrapporter inkluderer:
- Kernal/temperatur
- Filsystem og I/O
- Netværkstrafik
- Apache/Mail/FTP/Nginx
- MySQL/Lak/Memcached
Monitorix tilbyder også alarmkonfiguration, så du kan få besked, når tingene ikke er rigtige. Det vil være et godt valg, når du administrerer cloud-baserede servere og leder efter en proaktiv overvågningsløsning.
Netdata
Netdata er en præstationsovervågning i realtid for systemressourcer, applikationer, webservere, databaser, DNS, mail, hardwaresensorer og meget mere. Det er open source, og det er nemt at komme i gang. Alle data indsamles, lagres og streames, så du kan visualisere interaktivt. Data indsamles hvert sekund, så du aldrig går glip af noget.
Elsket af mange industriledere.
Så hvad du venter på, prøv at tage kontrol over dine Linux-servere.
btop
btop er en praktisk ressourcemonitor, der er fuldt interaktiv med en smuk brugergrænseflade, der hjælper dig med at administrere Linux-serverne.
Du kan nemt visualisere processerne i en trævisning, filtrere fra proceslisten og administrere ressourcesvinene. btop leveres også med en automatisk skaleringsgraf, der viser netværksbrug.
Desuden kan du også tjekke diskhastighed og fuldføre I/O-aktivitet.
Der er mere til dette, som du kan opleve på Linux, FreeBSD og macOS.
Konklusion
Jeg håber, at ovenstående værktøjer hjælper dig med at visualisere serverudnyttelsen i realtid, så du kan tage den nødvendige handling. Hvis du lige er startet som systemadministrator og ønsker at få praktisk træning, så tjek dette Udemy kursus.