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!
Table of Contents
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.
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ý.
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.
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.