Tudja meg, hogy egy adott folyamat vagy rendszer mennyi CPU-t vagy memóriát fogyaszt.
Rendszergazdaként gyakran kell megküzdenie olyan incidenssel, amikor az alkalmazás lassú vagy nem válaszol a magas CPU/memória/hálózat kihasználtság miatt. Ha a szerver csak egy folyamatot üzemeltet, akkor könnyen megtudhatja, hogy a folyamat mikor fogyasztja el az összes erőforrást. Képzeljen el azonban egy megosztott szervert, ahol több szolgáltatás fut, és meg kell találnia, hogy melyik fogyasztja az összes erőforrást.
Számos megfigyelő szoftver létezik, amely ezt már a dobozból kiveszi. De ha nincs ilyened, vagy parancsalapú megoldást keresel, akkor tessék. Mindegyik INGYENES!
Tartalomjegyzék
tetejére
A folyamatok áttekintése érdekében érdemes először megnézni a top vagy a htop eredményt.
Amint az alábbiakban látható, kiváló képet ad arról, hogy az összes folyamat mit használ. Ha megnézzük az elsőt, ami a MySQL a CPU 11,9%-át és a CPU 2,5%-át használja.
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
A felső szinte minden Linux-disztribúcióra telepítve van.
Miután azonosította a gyanúsítottat, érdemes lehet erre a folyamatra összpontosítani, ahelyett, hogy mindent úgy csinálna, mint ahogy fentebb láthatta. Továbbra is használhatja a top parancsot, de bizonyos argumentumokkal.
Tegyük fel, hogy ismeri a folyamatazonosítót (PID); használhatja az alábbi parancsot.
top -p $PID
Alább egy példa a top -p 3102-re
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
Használhatod a grep-et a top-al is. Az alábbiakban egy példa a Docker kihasználtságának ellenőrzésére.
[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
Hasonló a felsőhöz, de több információval. Amint lehet, megkapta a parancsoszlopot, amely praktikus a folyamat útvonalának azonosításához. Ráadásul színes is.
Előfordulhat, hogy a htop alapértelmezés szerint nincs telepítve, de az alábbiak szerint bármikor megteheti.
Telepítse a htop-ot Ubuntu-ra
apt-get install htop
Telepítse a htopot a CentOS/RHEL 8.x rendszerre
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm dnf update dnf install htop
pillantásokat
Ahogy a név is mondja, egyetlen képernyőn láthatja a rendszerhasználati nézetet. A futó folyamatok a CPU kihasználtsága szerint vannak rendezve.
Telepítheti a pillantásokat a CentOS 8 rendszerre a DNF használatával, az alábbiak szerint.
dnf install glances
CentOS7 esetén használhatja a YUM-ot
yum install glances
tetején
A fent felsoroltakhoz hasonló, de kiváló tulajdonsággal, hogy a kimenetet fájlba rögzítse, hogy később megtekinthesse. Képzelje el, hogy van egy probléma egy adott időablakban. Ütemezheti, hogy a kimenetet fájlba írja a crontab-on vagy máson keresztül, és később lejátszhatja.
A kimenet rögzítése fájlba:
atop -w filename
és a lejátszáshoz:
atop -r filename
Több argumentumot támogat, mint például az intervallum, a minták stb., és erősen ajánlom, hogy vessen egy pillantást a man oldalra.
Ha csak a valós idejű hibaelhárítás érdekli, akkor csak hajtsa végre a tetején, és az alábbiak szerint kell megjelennie.
Az alábbiak szerint telepítheti a tetejére.
dnf install atop
ps
Most nézzük meg a ps parancsot.
Használhatja a ps parancsot PID-vel a CPU- és memóriahasználatuk kinyomtatására.
ps -p $PID -o %cpu,%mem
A kimenetnek így kell kinéznie.
[email protected]:~# ps -p 1048 -o %cpu,%mem %CPU %MEM 0.2 3.0 [email protected]:~#
nmon
Interaktív parancssori megfigyelő eszköz CPU, memória, lemezek, hálózat, NFS és virtuális memória használatához. A legfelső folyamat megtekintéséhez (használat szerint) hajtsa végre az nmon parancsot, és nyomja meg a t gombot.
Az nmon-t az alábbiak szerint telepítheti.
dnf install nmon
Monit
Monit egy webalapú és parancssori nyílt forráskódú megoldás a szerver erőforrások, démonok, fájlok, könyvtárak, fájlrendszerek stb. figyelésére.
Monit is kapott egy menő kütyüt.
Könnyű felügyeleti szoftvere. Itt azonban van még mit felfedezni.
Monitorix
Könnyű, nyílt forráskódú segédprogram a Linux-kiszolgáló figyelésére. Monitorix beépített HTTP-t kapott, így ellenőrizheti a kihasználtságot és egyéb dolgokat a weben. Néhány egyéb használati jelentés a következőket tartalmazza:
- Kernal/hőmérséklet
- Fájlrendszer és I/O
- Hálózati forgalom
- Apache/Mail/FTP/Nginx
- MySQL/Varnish/Memcached
A Monitorix riasztási konfigurációt is kínál, így értesítést kaphat, ha a dolgok nem stimmelnek. Jó választás lesz, ha felhőalapú szervereket kezel, és proaktív megfigyelési megoldást keres.
Netdata
Netdata egy valós idejű teljesítményfigyelés rendszererőforrásokhoz, alkalmazásokhoz, webszerverekhez, adatbázisokhoz, DNS-hez, levelekhez, hardverérzékelőkhöz és még sok máshoz. Nyílt forráskódú, és az indulás egyszerű. Az összes adatot összegyűjtjük, tároljuk és streameljük, hogy Ön interaktívan megjeleníthesse. Az adatgyűjtés másodpercenként történik, így soha nem marad le semmiről.
Sok iparági vezető szereti.
Tehát amire vár, próbálja meg átvenni az irányítást a Linux-kiszolgálók felett.
btop
btop egy praktikus, teljesen interaktív erőforrás-figyelő, gyönyörű felhasználói felülettel, amely segít a Linux-kiszolgálók kezelésében.
Könnyedén megjelenítheti a folyamatokat fanézetben, szűrhet a folyamatlistából, és kezelheti az erőforrás-maradványokat. A btop egy automatikus skálázási grafikonnal is rendelkezik, amely a hálózathasználatot mutatja.
Ezenkívül ellenőrizheti a lemez sebességét és befejezheti az I/O tevékenységet.
Ez több, amit Linuxon, FreeBSD-n és macOS-en tapasztalhatsz.
Következtetés
Remélem, hogy a fenti eszközök segítenek a szerver kihasználtságának valós időben történő megjelenítésében, így megteheti a szükséges lépéseket. Ha most kezdte rendszergazdaként, és gyakorlati képzést szeretne kapni, akkor nézze meg ezt Udemy tanfolyam.