ເຂົ້າໃຈ Linux Load Averages ແລະຕິດຕາມຜົນງານຂອງ Linux
ໃນບົດຂຽນນີ້, ພວກເຮົາຈະອະທິບາຍ ໜຶ່ງ ໃນບັນດາ ໜ້າ ວຽກໃນການບໍລິຫານລະບົບ Linux ທີ່ ສຳ ຄັນ - ການຕິດຕາມກວດກາການປະຕິບັດກ່ຽວກັບລະບົບການໂຫຼດ/ລະບົບ CPU ແລະຄ່າສະເລ່ຍການໂຫຼດ.
ກ່ອນທີ່ພວກເຮົາຈະກ້າວຕໍ່ໄປອີກ, ໃຫ້ເຂົ້າໃຈສອງປະໂຫຍກທີ່ ສຳ ຄັນນີ້ໃນທຸກລະບົບທີ່ຄ້າຍຄືກັບ Unix:
- ການໂຫຼດລະບົບ/ການໂຫຼດ CPU - ແມ່ນການວັດແທກຂອງ CPU ເກີນຫລືບໍ່ ນຳ ໃຊ້ໃນລະບົບ Linux; ຈຳ ນວນຂອງຂະບວນການທີ່ ກຳ ລັງ ດຳ ເນີນການໂດຍ CPU ຫຼືຢູ່ໃນໄລຍະລໍຖ້າ.
- ໂຫຼດສະເລ່ຍ - ແມ່ນການໂຫຼດລະບົບໂດຍສະເລ່ຍຄິດໄລ່ໃນໄລຍະເວລາ 1, 5 ແລະ 15 ນາທີ.
ໃນ Linux, ຄ່າສະເລ່ຍຂອງການໂຫຼດແມ່ນຖືກເຊື່ອກັນວ່າທາງດ້ານເຕັກນິກແມ່ນລະດັບສະເລ່ຍຂອງຂະບວນການທີ່ມັນຢູ່ໃນ (kernel) ແຖວການປະຕິບັດມັນຖືກເອີ້ນວ່າແລ່ນຫຼືບໍ່ສາມາດ ທຳ ລາຍໄດ້.
ໃຫ້ສັງເກດວ່າ:
- ຖ້າບໍ່ແມ່ນລະບົບເກືອບທັງ ໝົດ ທີ່ໃຊ້ໂດຍ Linux ຫຼືລະບົບຄ້າຍຄື Unix ອື່ນໆກໍ່ຈະສະແດງຄ່າສະເລ່ຍຂອງການໂຫຼດໃຫ້ກັບຜູ້ໃຊ້.
- ລະບົບ Linux ທີ່ເຮັດວຽກແບບບໍ່ມີປະໂຫຍດອາດຈະມີເວລາໂຫຼດສະເລ່ຍໂດຍບໍ່ລວມເອົາຂະບວນການທີ່ບໍ່ເຮັດວຽກ.
- ເກືອບທັງ ໝົດ ລະບົບທີ່ຄ້າຍຄືກັບ Unix ແມ່ນນັບແຕ່ຂັ້ນຕອນໃນສະຖານະທີ່ ກຳ ລັງແລ່ນຫຼືລໍຖ້າ. ແຕ່ນີ້ບໍ່ແມ່ນກໍລະນີກັບ Linux, ມັນປະກອບມີຂັ້ນຕອນໃນສະພາບການນອນຫຼັບທີ່ບໍ່ມີການລົບກວນ; ຜູ້ທີ່ລໍຖ້າຊັບພະຍາກອນລະບົບອື່ນໆເຊັ່ນ disk I/O ແລະອື່ນໆ.
ວິທີການກວດສອບລະບົບການໂຫຼດຂອງ Linux ໂດຍສະເລ່ຍ
ມີຫລາຍວິທີໃນການກວດສອບລະບົບການໂຫຼດໂດຍສະເລ່ຍລວມເຖິງເວລາທີ່ສະແດງໃຫ້ເຫັນວ່າລະບົບໃຊ້ງານໄດ້ດົນປານໃດ, ຈຳ ນວນຜູ້ໃຊ້ຮ່ວມກັນກັບຄ່າສະເລ່ຍການໂຫຼດ:
$ uptime 07:13:53 up 8 days, 19 min, 1 user, load average: 1.98, 2.15, 2.21
ຕົວເລກແມ່ນອ່ານຈາກຊ້າຍຫາຂວາ, ແລະຜົນໄດ້ຮັບຂ້າງເທິງ ໝາຍ ຄວາມວ່າ:
- ໂຫຼດສະເລ່ຍໃນໄລຍະ 1 ນາທີສຸດທ້າຍແມ່ນ 1,98
- ໂຫຼດສະເລ່ຍໃນໄລຍະ 5 ນາທີສຸດທ້າຍແມ່ນ 2.15
- ໂຫຼດສະເລ່ຍໃນ 15 ນາທີສຸດທ້າຍແມ່ນ 2.21
ໂດຍສະເລ່ຍແລ້ວການໂຫຼດສູງ ໝາຍ ຄວາມວ່າລະບົບ ໜັກ ເກີນ; ມີຫຼາຍຂະບວນການ ກຳ ລັງລໍຖ້າເວລາ CPU.
ພວກເຮົາຈະເປີດເຜີຍເລື່ອງນີ້ໃນພາກຕໍ່ໄປກ່ຽວຂ້ອງກັບ ຈຳ ນວນ CPU. ນອກຈາກນັ້ນ, ພວກເຮົາຍັງສາມາດໃຊ້ເຄື່ອງມືທີ່ມີຊື່ສຽງອື່ນໆເຊັ່ນ: ຄວາມສະຫວ່າງເຊິ່ງສະແດງສະພາບເວລາທີ່ແທ້ຈິງຂອງລະບົບ Linux ທີ່ ກຳ ລັງແລ່ນຢູ່, ບວກກັບເຄື່ອງມືອື່ນໆອີກຫຼາຍຢ່າງ:
$ 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 ....
$ 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 ...
ຄ່າສະເລ່ຍຂອງການໂຫຼດທີ່ສະແດງໂດຍເຄື່ອງມືເຫຼົ່ານີ້ແມ່ນໄຟລ໌ອ່ານ/proc/loadavg ເຊິ່ງທ່ານສາມາດເບິ່ງໂດຍໃຊ້ ຄຳ ສັ່ງແມວດັ່ງລຸ່ມນີ້:
$ cat /proc/loadavg 2.48 1.69 1.42 5/889 10570
ເພື່ອຕິດຕາມການໂຫຼດໂດຍສະເລ່ຍໃນຮູບແບບເສັ້ນສະແດງ, ໃຫ້ກວດເບິ່ງວ່າ: ttyload - ສະແດງເສັ້ນກຣາຟິກສີຂອງ Linux Load Average ໃນ Terminal
ໃນເຄື່ອງຈັກໃນຄອມພີວເຕີ້, ມີເຄື່ອງມືການໂຕ້ຕອບຜູ້ໃຊ້ແບບກາຟິກທີ່ພວກເຮົາສາມາດໃຊ້ເພື່ອເບິ່ງລະດັບສະເລ່ຍຂອງການໂຫຼດຂອງລະບົບ.
ເຂົ້າໃຈລະບົບການໂຫຼດໂດຍສະເລ່ຍໃນ ຈຳ ນວນ Relation ຂອງ CPU
ພວກເຮົາບໍ່ສາມາດອະທິບາຍກ່ຽວກັບການໂຫຼດລະບົບຫລືການເຮັດວຽກຂອງລະບົບໄດ້ໂດຍບໍ່ຕ້ອງໃຫ້ແສງເຖິງຜົນກະທົບຂອງ ຈຳ ນວນ CPU ໃນການເຮັດວຽກ.
- ຫຼາຍໂປເຊດເຊີ - ແມ່ນບ່ອນທີ່ສອງຫຼືຫຼາຍກວ່າ CPU ຂອງຮ່າງກາຍຖືກລວມເຂົ້າໃນລະບົບຄອມພິວເຕີ້ດຽວ.
- ເຄື່ອງປະມວນຜົນຫຼາຍແກນ - ເປັນ CPU ທາງກາຍະພາບດ່ຽວເຊິ່ງມີຢ່າງ ໜ້ອຍ ສອງຫຼືຫຼາຍກວ່າແກນແຍກຕ່າງຫາກ (ຫຼືສິ່ງທີ່ພວກເຮົາຍັງສາມາດ ໝາຍ ເຖິງເປັນ ໜ່ວຍ ປະມວນຜົນ) ທີ່ເຮັດວຽກແບບຂະ ໜານ ກັນ. ໝາຍ ຄວາມວ່າ dual-core ມີ 2 ໜ່ວຍ ງານປະມວນຜົນ 2 ໜ່ວຍ, quad-core ມີ 4 ໜ່ວຍ ປະມວນຜົນແລະອື່ນໆ.
ຍິ່ງໄປກວ່ານັ້ນ, ມັນຍັງມີເຕັກໂນໂລຢີໂປເຊດເຊີທີ່ໄດ້ຖືກ ນຳ ສະ ເໜີ ໂດຍ Intel ຄັ້ງ ທຳ ອິດໃນການປັບປຸງຄອມພິວເຕີ້ຂະ ໜານ, ເຊິ່ງເອີ້ນວ່າ hyper threading.
ພາຍໃຕ້ກະທູ້ hyper, ຫຼັກ CPU ທາງດ້ານຮ່າງກາຍດຽວປະກົດວ່າເປັນສອງ CPUs ທີ່ມີເຫດຜົນຕໍ່ລະບົບປະຕິບັດການ (ແຕ່ໃນຄວາມເປັນຈິງແລ້ວ, ມັນມີສ່ວນປະກອບຂອງ Hardware ສ່ວນ ໜຶ່ງ).
ໃຫ້ສັງເກດວ່າຫຼັກ CPU ດຽວສາມາດປະຕິບັດວຽກງານ ໜຶ່ງ ຄັ້ງຕໍ່ຄັ້ງໄດ້, ສະນັ້ນເຕັກໂນໂລຢີເຊັ່ນ: CPU/ໂປເຊດເຊີຫຼາຍໆ ໜ່ວຍ, CPU ຫຼາຍແກນແລະກະແສໄຟຟ້າ hyper-threading ໄດ້ຖືກ ນຳ ມາໃຊ້ໃນຊີວິດ.
ມີ CPU ຫຼາຍກ່ວາ ໜຶ່ງ, ຫຼາຍໂປແກຼມສາມາດປະຕິບັດພ້ອມກັນໄດ້. CPU Intel Intel ຍຸກປະຈຸບັນໃຊ້ການລວມກັນຂອງທັງສອງ cores ແລະເຕັກໂນໂລຢີ hyper-threading.
ເພື່ອຊອກຫາ ຈຳ ນວນຫົວ ໜ່ວຍ ປະມວນຜົນທີ່ມີຢູ່ໃນລະບົບ, ພວກເຮົາອາດຈະໃຊ້ ຄຳ ສັ່ງ nproc ຫຼື lscpu ດັ່ງຕໍ່ໄປນີ້:
$ nproc 4 OR lscpu
ອີກວິທີ ໜຶ່ງ ໃນການຊອກຫາ ຈຳ ນວນ ໜ່ວຍ ງານປະມວນຜົນໂດຍໃຊ້ ຄຳ ສັ່ງ grep ຕາມທີ່ສະແດງ.
$ grep 'model name' /proc/cpuinfo | wc -l 4
ໃນປັດຈຸບັນ, ເພື່ອເຂົ້າໃຈຕື່ມອີກກ່ຽວກັບການໂຫຼດລະບົບ, ພວກເຮົາຈະເອົາການສົມມຸດຕິຖານ ຈຳ ນວນ ໜຶ່ງ. ບອກວ່າພວກເຮົາມີຄ່າສະເລ່ຍຕໍ່ໄປນີ້:
23:16:49 up 10:49, 5 user, load average: 1.00, 0.40, 3.35
- CPU ໄດ້ ນຳ ໃຊ້ຢ່າງເຕັມທີ່ (100%) ໂດຍສະເລ່ຍ; 1 ຂະບວນການ ກຳ ລັງເປີດໃຊ້ CPU (1.00) ໃນ 1 ນາທີສຸດທ້າຍ.
- ຊີພີຢູແມ່ນບໍ່ເຮັດວຽກໂດຍສະເລ່ຍ 60%; ບໍ່ມີຂັ້ນຕອນໃດລໍຖ້າເວລາ CPU (0.40) ໃນ 5 ນາທີສຸດທ້າຍ.
- CPU ໄດ້ບັນຈຸເກີນ 235% ໂດຍສະເລ່ຍ; ຂະບວນການ 2.35 ໄດ້ລໍຖ້າເວລາ CPU (3.35) ໃນ 15 ນາທີສຸດທ້າຍ.
- ໜຶ່ງ CPU ແມ່ນບໍ່ເຮັດວຽກໂດຍສະເລ່ຍ 100%, ໜຶ່ງ CPU ກຳ ລັງຖືກ ນຳ ໃຊ້; ບໍ່ມີຂະບວນການໃດລໍຖ້າເວລາ CPU (1.00) ໃນ 1 ນາທີສຸດທ້າຍ.
- ຊີພີເອັສບໍ່ໄດ້ເຮັດວຽກໂດຍສະເລ່ຍ 160%; ບໍ່ມີຂະບວນການໃດລໍຖ້າເວລາ CPU. (0.40) ໃນເວລາ 5 ນາທີສຸດທ້າຍ.
- CPU ໄດ້ຖືກໂຫຼດເກີນ 135% ໂດຍສະເລ່ຍ; ຂະບວນການ 1.35 ໄດ້ລໍຖ້າເວລາ CPU. (3.35) ໃນ 15 ນາທີສຸດທ້າຍ.
ທ່ານອາດຈະມັກ:
<
ສະຫລຸບລວມແລ້ວ, ຖ້າທ່ານເປັນຜູ້ບໍລິຫານລະບົບດັ່ງນັ້ນຄ່າສະເລ່ຍການໂຫຼດສູງແມ່ນ ໜ້າ ເປັນຫ່ວງແທ້ໆ. ເມື່ອພວກມັນສູງ, ເໜືອ ຈຳ ນວນ CPU, ມັນ ໝາຍ ເຖິງຄວາມຕ້ອງການສູງຂອງ CPU, ແລະຄ່າສະເລ່ຍການໂຫຼດຕ່ ຳ ກ່ວາ ຈຳ ນວນ CPU ບອກພວກເຮົາວ່າ CPU ແມ່ນບໍ່ມີປະສິດຕິພາບ.