Ismerje meg a Linux terhelési átlagait és figyelje a Linux teljesítményét
Ebben a cikkben elmagyarázzuk az egyik kritikus Linux rendszeradminisztrációs feladatot – a teljesítményfigyelést a rendszer/CPU terhelés és a terhelési átlagok tekintetében.
Mielőtt továbblépnénk, értsük meg ezt a két fontos kifejezést minden Unix-szerű rendszerben:
- Rendszerterhelés/CPU-terhelés – a CPU túl- vagy alulhasználatának mérése Linux rendszerben; a CPU által végrehajtott vagy várakozási állapotban lévő folyamatok száma.
- Átlagos terhelés – a rendszer átlagos terhelése egy adott 1, 5 és 15 perces időtartamra számítva.
A Linuxban a terhelési átlagról technikailag úgy gondolják, hogy a (kernel) végrehajtási sorában lévő folyamatok futó átlaga, amely futó vagy megszakíthatatlan címkével van ellátva.
Ne feledje:
- Minden, ha nem a legtöbb Linuxot vagy más Unix-szerű rendszert működtető rendszer valahol megmutatja a terhelési átlagértékeket a felhasználó számára.
- Egy teljesen tétlen Linux rendszer terhelési átlaga nulla lehet, az üresjárati folyamatot leszámítva.
- Szinte minden Unix-szerű rendszer csak a futó vagy várakozó állapotban lévő folyamatokat számolja. De ez nem így van a Linux esetében, ez magában foglalja a megszakítás nélküli alvó állapotú folyamatokat; akik más rendszererőforrásokra várnak, például lemez I/O stb.
Hogyan lehet nyomon követni a Linux rendszer átlagos terhelését
Számos módja van a rendszer terhelési átlagának nyomon követésének, beleértve az üzemidőt, amely megmutatja, mennyi ideig fut a rendszer, a felhasználók számát és a terhelési átlagokat:
uptime
07:13:53 up 8 days, 19 min, 1 user, load average: 1.98, 2.15, 2.21
A számokat balról jobbra olvassuk, és a fenti kimenet azt jelenti, hogy:
- az elmúlt 1 perc terhelési átlaga 1,98
- Az elmúlt 5 perc terhelési átlaga 2,15
- Az elmúlt 15 perc terhelési átlaga 2,21
A magas terhelési átlagok azt jelentik, hogy a rendszer túlterhelt; sok folyamat a CPU idejére vár.
Ezt a következő részben fogjuk feltárni a CPU magok számával kapcsolatban. Ezenkívül használhatunk más jól ismert eszközöket is, mint például a top és a glances, amelyek egy futó Linux rendszer valós idejű állapotát jelenítik meg, valamint sok más eszközt is:
Felső parancs
top
top - 12:51:42 up 2:11, 1 user, load average: 1.22, 1.12, 1.26
Tasks: 243 total, 1 running, 242 sleeping, 0 stopped, 0 zombie
%Cpu(s): 17.4 us, 2.9 sy, 0.3 ni, 74.8 id, 4.6 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 8069036 total, 388060 free, 4381184 used, 3299792 buff/cache
KiB Swap: 3906556 total, 3901876 free, 4680 used. 2807464 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6265 tecmint 20 0 1244348 170680 83616 S 13.3 2.1 6:47.72 Headset
2301 tecmint 9 -11 640332 13344 9932 S 6.7 0.2 2:18.96 pulseaudio
2459 tecmint 20 0 1707692 315628 62992 S 6.7 3.9 6:55.45 cinnamon
2957 tecmint 20 0 2644644 1.035g 137968 S 6.7 13.5 50:11.13 firefox
3208 tecmint 20 0 507060 52136 33152 S 6.7 0.6 0:04.34 gnome-terminal-
3272 tecmint 20 0 1521380 391324 178348 S 6.7 4.8 6:21.01 chrome
6220 tecmint 20 0 1595392 106964 76836 S 6.7 1.3 3:31.94 Headset
1 root 20 0 120056 6204 3964 S 0.0 0.1 0:01.83 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:00.10 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
....
Pillanatok eszköz
glances
TecMint (LinuxMint 18 64bit / Linux 4.4.0-21-generic) Uptime: 2:16:06
CPU 16.4% nice: 0.1% LOAD 4-core MEM 60.5% active: 4.90G SWAP 0.1%
user: 10.2% irq: 0.0% 1 min: 1.20 total: 7.70G inactive: 2.07G total: 3.73G
system: 3.4% iowait: 2.7% 5 min: 1.16 used: 4.66G buffers: 242M used: 4.57M
idle: 83.6% steal: 0.0% 15 min: 1.24 free: 3.04G cached: 2.58G free: 3.72G
NETWORK Rx/s Tx/s TASKS 253 (883 thr), 1 run, 252 slp, 0 oth sorted automatically by cpu_percent, flat view
enp1s0 525Kb 31Kb
lo 2Kb 2Kb CPU% MEM% VIRT RES PID USER NI S TIME+ IOR/s IOW/s Command
wlp2s0 0b 0b 14.6 13.3 2.53G 1.03G 2957 tecmint 0 S 51:49.10 0 40K /usr/lib/firefox/firefox
7.4 2.2 1.16G 176M 6265 tecmint 0 S 7:08.18 0 0 /usr/lib/Headset/Headset --type=renderer --no-sandbox --primordial-pipe-token=879B36514C6BEDB183D3E4142774D1DF --lan
DISK I/O R/s W/s 4.9 3.9 1.63G 310M 2459 tecmint 0 R 7:12.18 0 0 cinnamon --replace
ram0 0 0 4.2 0.2 625M 13.0M 2301 tecmint -11 S 2:29.72 0 0 /usr/bin/pulseaudio --start --log-target=syslog
ram1 0 0 4.2 1.3 1.52G 105M 6220 tecmint 0 S 3:42.64 0 0 /usr/lib/Headset/Headset
ram10 0 0 2.9 0.8 409M 66.7M 6240 tecmint 0 S 2:40.44 0 0 /usr/lib/Headset/Headset --type=gpu-process --no-sandbox --supports-dual-gpus=false --gpu-driver-bug-workarounds=7,2
ram11 0 0 2.9 1.8 531M 142M 1690 root 0 S 6:03.79 0 0 /usr/lib/xorg/Xorg :0 -audit 0 -auth /var/lib/mdm/:0.Xauth -nolisten tcp vt8
ram12 0 0 2.6 0.3 79.3M 23.8M 9651 tecmint 0 R 0:00.71 0 0 /usr/bin/python3 /usr/bin/glances
ram13 0 0 1.6 4.8 1.45G 382M 3272 tecmint 0 S 6:25.30 0 4K /opt/google/chrome/chrome
...
Az eszközök által megjelenített terhelési átlagok a /proc/loadavg fájl beolvasása, amelyet a cat paranccsal tekinthet meg az alábbiak szerint:
cat /proc/loadavg
2.48 1.69 1.42 5/889 10570
A terhelési átlagok grafikon formátumban történő figyeléséhez nézze meg: ttyload – Színkódolt grafikont jelenít meg a Linux terhelési átlagáról a terminálban
Asztali gépeken vannak grafikus felhasználói felület eszközök, amelyek segítségével megtekinthetjük a rendszer terhelési átlagait.
A rendszer átlagos terhelésének megértése a CPU-k számának viszonylatában
Nem tudjuk megmagyarázni a rendszerterhelést vagy a rendszer teljesítményét anélkül, hogy rávilágítanánk a CPU magok számának a teljesítményre gyakorolt hatására.
Többprocesszoros vs többmagos
- Többprocesszoros – két vagy több fizikai CPU egyetlen számítógépes rendszerbe integrálva.
- Többmagos processzor – egyetlen fizikai CPU, amely legalább két vagy több különálló maggal (vagy más néven feldolgozóegységekkel) rendelkezik, amelyek párhuzamosan működnek. Ez azt jelenti, hogy a kétmagosnak 2 két feldolgozóegysége van, a négymagosnak 4 feldolgozóegysége van, és így tovább.
Ezenkívül létezik egy processzortechnológia is, amelyet először az Intel vezetett be a párhuzamos számítástechnika javítására, amelyet hiperszál-kezelésnek neveznek.
Hiperszálképzés esetén egyetlen fizikai CPU-mag két logikai CPU-magként jelenik meg az operációs rendszerben (de a valóságban egyetlen fizikai hardverkomponens van).
Ne feledje, hogy egyetlen CPU mag egyszerre csak egy feladatot tud végrehajtani, így életre keltek az olyan technológiák, mint a több CPU/processzor, a többmagos CPU és a hyper-threading.
Egynél több CPU-val több program is végrehajtható egyszerre. A jelenlegi Intel CPU-k a többmagos és a hiperszálas technológia kombinációját használják.
A rendszerben elérhető feldolgozó egységek számának meghatározásához az nproc vagy az lscpu parancsokat használhatjuk a következők szerint:
nproc
4
OR
lscpu
Egy másik módszer a feldolgozó egységek számának meghatározására a grep paranccsal, ahogy az ábra mutatja.
grep 'model name' /proc/cpuinfo | wc -l
4
Most, hogy jobban megértsük a rendszerterhelést, néhány feltételezéssel élünk. Tegyük fel, hogy az alábbi terhelési átlagaink vannak:
23:16:49 up 10:49, 5 user, load average: 1.00, 0.40, 3.35
Egy magrendszeren ez a következőket jelentené:
- A CPU-t átlagosan teljesen (100%) kihasználták; 1 folyamat futott a CPU-n (1.00) az elmúlt 1 percben.
- A CPU átlagosan 60%-ban volt üresjáratban; egyetlen folyamat sem várt CPU-időre (0,40) az elmúlt 5 percben.
- A CPU átlagosan 235%-kal volt túlterhelve; 2,35 processzor várt a CPU-időre (3,35) az elmúlt 15 percben.
Kétmagos rendszeren ez a következőket jelentené:
- Az egy CPU átlagosan 100%-ban tétlen volt, egy CPU volt használatban; egyetlen folyamat sem várt CPU-időre (1.00) az elmúlt 1 percben.
- A CPU-k átlagosan 160%-ban tétlenek voltak; egyetlen folyamat sem várt a CPU idejére. (0,40) az elmúlt 5 percben.
- A CPU-k átlagosan 135%-kal voltak túlterhelve; 1,35 processzor várt a CPU idejére. (3,35) az elmúlt 15 percben.
Akár ez is tetszhet:
- 20 parancssori eszköz a Linux teljesítményének figyeléséhez – 1. rész
- 13 Linux Performance Monitoring Tools – 2. rész
- Perf – Teljesítményfigyelő és -elemző eszköz Linuxhoz
- Nmon: A Linux rendszer teljesítményének elemzése és figyelése
Összefoglalva, ha Ön rendszergazda, akkor a magas terhelési átlagok miatt aggódni kell. Ha magasak, meghaladják a CPU-magok számát, az nagy keresletet jelent a CPU-k iránt, és a CPU-magok alatti alacsony terhelési átlagok azt jelzik, hogy a CPU-k kihasználatlanok.