Jak monitorovat CPU a paměť v Linuxu?

Zjistěte, kolik jednotlivý proces nebo celý systém spotřebovává CPU nebo paměť.

Jako správce systému se často musíte vypořádat s incidentem, kdy je aplikace pomalá nebo nereaguje kvůli vysokému využití CPU/paměti/sítě. Pokud server hostí pouze jeden proces, pak je snadné zjistit, kdy proces spotřebovává všechny zdroje. Představte si však sdílený server, kde běží více služeb a vy potřebujete najít, která spotřebovává všechny zdroje.

Existuje mnoho monitorovacího softwaru, který to dělá hned po vybalení. Ale pokud žádné nemáte nebo hledáte řešení založené na příkazech, pak to máte. Všechny jsou ZDARMA!

horní

Možná budete chtít začít tím, že se podíváte do top nebo htop výsledku, abyste viděli přehled procesů.

Jak můžete vidět níže, poskytuje vynikající představu o tom, co všechny procesy využívají. Pokud se podíváte na první, což je MySQL, zabírá 11,9 % CPU a 2,5 % 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

Top je nainstalován na téměř všech distribucích Linuxu.

  Co je dropshipping a je to podvod?

Jakmile identifikujete podezřelého, možná se budete chtít zaměřit na tento proces místo na vše, co jste viděli výše. Stále můžete použít příkaz top, ale s nějakým argumentem.

Řekněme, že znáte ID procesu (PID); můžete použít níže uvedený příkaz.

nahoru -p $PID

Níže je příklad 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

Můžete také použít grep s top. Níže je příklad kontroly využití Dockeru.

[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

Podobné jako nahoře, ale s více informacemi. Jak můžete, má sloupec příkazů, který je užitečný pro identifikaci cesty procesu. A také je barevný.

  Jak hrát arkádové hry pomocí MAME na Linuxu

htop nemusí být ve výchozím nastavení nainstalován, ale vždy to můžete provést, jak je uvedeno níže.

Nainstalujte htop na Ubuntu

apt-get install htop

Nainstalujte htop na CentOS/RHEL 8.x

dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
dnf update
dnf install htop

pohledy

Jak název napovídá, na jedné obrazovce získáte pohled na využití systému. Běžící procesy jsou seřazeny podle jejich využití CPU.

Pohledy můžete nainstalovat na CentOS 8 pomocí DNF, jak je uvedeno níže.

dnf install glances

pro CentOS7 můžete použít YUM

yum install glances

nahoře

Podobné výše uvedenému, ale s vynikající funkcí pro záznam výstupu do souboru, abyste si je mohli prohlédnout později. Představte si, že existuje vzorec, že ​​máte problém v určitém časovém okně. Můžete naplánovat zápis výstupu do souboru pomocí crontab nebo jiného a později můžete přehrávat.

Chcete-li zaznamenat výstup do souboru:

atop -w filename

a pro přehrávání:

atop -r filename

Podporuje více argumentů, jako je interval, vzorky atd. a důrazně bych doporučil podívat se na manuálovou stránku.

Pokud vás zajímá pouze řešení problémů v reálném čase, stačí spustit nahoře a měli byste vidět níže.

Můžete nainstalovat nahoře, jak je uvedeno níže.

dnf install atop

ps

Nyní zkontrolujeme příkaz ps.

Pomocí příkazu ps s PID můžete vytisknout jejich využití CPU a paměti.

ps -p $PID -o %cpu,%mem

Výstup by měl vypadat takto.

[email protected]:~# ps -p 1048 -o %cpu,%mem
%CPU %MEM
 0.2  3.0
[email protected]:~#

nmon

Interaktivní nástroj pro monitorování z příkazového řádku pro CPU, paměť, disky, síť, NFS a využití virtuální paměti. Chcete-li zobrazit hlavní proces (podle využití), můžete spustit nmon a stisknout tlačítko t.

  Jak změnit velikost písmen v textu v PowerPointu

Nmon můžete nainstalovat, jak je uvedeno níže.

dnf install nmon

Monit

Monit je webové a příkazové řešení s otevřeným zdrojovým kódem pro monitorování serverových prostředků, démonů, souborů, adresářů, souborových systémů atd.

Monit také dostal skvělý widget.

Jeho lehký monitorovací software. Zde je však k prozkoumání více.

Monitorix

Lehký open-source nástroj pro monitorování linuxového serveru. Monitorix má vestavěný HTTP, takže můžete zkontrolovat využití a další věci na webu. Některé z dalších zpráv o využití zahrnují:

  • Jádro/teplota
  • Souborový systém a I/O
  • Síťový provoz
  • Apache/Mail/FTP/Nginx
  • MySQL/Varnish/Memcached

Monitorix také nabízí konfiguraci výstrah, takže můžete být informováni, když věci nejsou v pořádku. Bude to dobrá volba, když spravujete cloudové servery a hledáte proaktivní řešení monitorování.

Netdata

Netdata je sledování výkonu systémových prostředků, aplikací, webových serverů, databází, DNS, pošty, hardwarových senzorů a mnoha dalších v reálném čase. Je to open source a začít je snadné. Všechna data se shromažďují, ukládají a streamují, abyste je mohli interaktivně vizualizovat. Data se shromažďují každou sekundu, takže vám nikdy nic neunikne.

Oblíbený mnoha lídry v oboru.

Takže na co čekáte, zkuste převzít kontrolu nad svými linuxovými servery.

btop

btop je praktický plně interaktivní monitor zdrojů s krásným uživatelským rozhraním, které vám pomůže spravovat servery Linux.

Můžete snadno vizualizovat procesy ve stromovém zobrazení, filtrovat ze seznamu procesů a spravovat zdroje. btop je také vybaven grafem automatického škálování, který ukazuje využití sítě.

Kromě toho můžete také zkontrolovat rychlost disku a dokončit I/O aktivitu.

Na Linuxu, FreeBSD a macOS můžete zažít více.

Závěr

Doufám, že výše uvedené nástroje vám pomohou vizualizovat využití serveru v reálném čase, abyste mohli podniknout potřebné kroky. Pokud jste právě začali jako správce systému a chcete získat praktické školení, podívejte se na toto Kurz Udemy.