Linux ലോഡ് ശരാശരി മനസ്സിലാക്കുക, Linux-ന്റെ പ്രകടനം നിരീക്ഷിക്കുക


ഈ ലേഖനത്തിൽ, നിർണായകമായ ലിനക്സ് സിസ്റ്റം അഡ്മിനിസ്ട്രേഷൻ ടാസ്ക്കുകളിൽ ഒന്ന് ഞങ്ങൾ വിശദീകരിക്കും - സിസ്റ്റം/സിപിയു ലോഡും ലോഡ് ശരാശരിയും സംബന്ധിച്ച പ്രകടന നിരീക്ഷണം.

കൂടുതൽ മുന്നോട്ട് പോകുന്നതിന് മുമ്പ്, എല്ലാ യുണിക്സ് പോലുള്ള സിസ്റ്റങ്ങളിലെയും ഈ രണ്ട് പ്രധാന വാക്യങ്ങൾ നമുക്ക് മനസ്സിലാക്കാം:

  • സിസ്റ്റം ലോഡ്/സിപിയു ലോഡ് - ഒരു ലിനക്സ് സിസ്റ്റത്തിലെ സിപിയു ഉപയോഗത്തിലോ കുറവോ ഉള്ളതിന്റെ അളവാണ്; CPU അല്ലെങ്കിൽ വെയിറ്റിംഗ് സ്റ്റേറ്റിൽ നടപ്പിലാക്കുന്ന പ്രക്രിയകളുടെ എണ്ണം.
  • ലോഡ് ആവറേജ് - 1, 5, 15 മിനിറ്റ് കാലയളവിൽ കണക്കാക്കിയ ശരാശരി സിസ്റ്റം ലോഡാണ്.

ലിനക്സിൽ, ലോഡ്-ശരാശരി, അതിന്റെ (കേർണൽ) എക്സിക്യൂഷൻ ക്യൂവിൽ റൺ ചെയ്യുന്നതോ തടസ്സമില്ലാത്തതോ ആയി ടാഗുചെയ്uതിരിക്കുന്ന പ്രക്രിയകളുടെ ശരാശരി റണ്ണിംഗ് ആവറേജ് ആണെന്ന് സാങ്കേതികമായി വിശ്വസിക്കപ്പെടുന്നു.

അതല്ല:

  • Linux അല്ലെങ്കിൽ മറ്റ് Unix പോലുള്ള സിസ്റ്റങ്ങൾ നൽകുന്ന മിക്ക സിസ്റ്റങ്ങളും ഇല്ലെങ്കിൽ, ഒരു ഉപയോക്താവിനായി എവിടെയെങ്കിലും ലോഡ് ശരാശരി മൂല്യങ്ങൾ കാണിക്കും.
  • നിഷ്uക്രിയമായ ഒരു ലിനക്uസ് സിസ്റ്റത്തിന്, നിഷ്uക്രിയ പ്രക്രിയ ഒഴികെ, ലോഡ് ശരാശരി പൂജ്യം ഉണ്ടായിരിക്കാം.
  • ഏതാണ്ട് എല്ലാ Unix-പോലുള്ള സിസ്റ്റങ്ങളും റണ്ണിംഗ് അല്ലെങ്കിൽ വെയ്റ്റിംഗ് സ്റ്റേറ്റുകളിലെ പ്രോസസ്സുകൾ മാത്രമേ കണക്കാക്കൂ. എന്നാൽ ലിനക്സിന്റെ കാര്യം അങ്ങനെയല്ല, തടസ്സമില്ലാത്ത ഉറക്കാവസ്ഥകളിലെ പ്രക്രിയകൾ ഇതിൽ ഉൾപ്പെടുന്നു; ഡിസ്ക് I/O മുതലായ മറ്റ് സിസ്റ്റം ഉറവിടങ്ങൾക്കായി കാത്തിരിക്കുന്നവർ.

Linux സിസ്റ്റം ലോഡ് ശരാശരി എങ്ങനെ നിരീക്ഷിക്കാം

സിസ്റ്റം ലോഡ് ആവറേജ് നിരീക്ഷിക്കുന്നതിന് നിരവധി മാർഗങ്ങളുണ്ട്, അത് സിസ്റ്റം എത്രത്തോളം പ്രവർത്തിക്കുന്നു, ഉപയോക്താക്കളുടെ എണ്ണം, ലോഡ് ശരാശരി എന്നിവ കാണിക്കുന്ന പ്രവർത്തനസമയം ഉൾപ്പെടെ:

$ uptime

07:13:53 up 8 days, 19 min,  1 user,  load average: 1.98, 2.15, 2.21

അക്കങ്ങൾ ഇടത്തുനിന്ന് വലത്തോട്ട് വായിക്കുന്നു, മുകളിലുള്ള ഔട്ട്പുട്ട് അർത്ഥമാക്കുന്നത്:

  • അവസാന ഒരു മിനിറ്റിലെ ലോഡ് ശരാശരി 1.98
  • ആണ്
  • കഴിഞ്ഞ 5 മിനിറ്റിലെ ലോഡ് ശരാശരി 2.15
  • ആണ്
  • കഴിഞ്ഞ 15 മിനിറ്റിലെ ലോഡ് ശരാശരി 2.21
  • ആണ്

ഉയർന്ന ലോഡ് ശരാശരി ഒരു സിസ്റ്റം ഓവർലോഡ് ആണെന്ന് സൂചിപ്പിക്കുന്നു; പല പ്രക്രിയകളും സിപിയു സമയത്തിനായി കാത്തിരിക്കുന്നു.

സിപിയു കോറുകളുടെ എണ്ണവുമായി ബന്ധപ്പെട്ട് ഞങ്ങൾ ഇത് അടുത്ത വിഭാഗത്തിൽ കണ്ടെത്തും. കൂടാതെ, പ്രവർത്തിക്കുന്ന ലിനക്സ് സിസ്റ്റത്തിന്റെ തത്സമയ അവസ്ഥ പ്രദർശിപ്പിക്കുന്ന ഗ്ലാൻസുകൾ പോലെയുള്ള മറ്റ് അറിയപ്പെടുന്ന ടൂളുകളും മറ്റ് നിരവധി ഉപകരണങ്ങളും ഞങ്ങൾക്ക് ഉപയോഗിക്കാനാകും:

$ 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 ലോഡ് ശരാശരിയുടെ വർണ്ണ-കോഡുചെയ്ത ഗ്രാഫ് കാണിക്കുന്നു

ഡെസ്uക്uടോപ്പ് മെഷീനുകളിൽ, സിസ്റ്റം ലോഡ് ശരാശരി കാണുന്നതിന് നമുക്ക് ഉപയോഗിക്കാനാകുന്ന ഗ്രാഫിക്കൽ യൂസർ ഇന്റർഫേസ് ടൂളുകൾ ഉണ്ട്.

CPU-കളുടെ റിലേഷൻ നമ്പറിൽ സിസ്റ്റം ശരാശരി ലോഡ് മനസ്സിലാക്കുന്നു

പ്രകടനത്തിലെ സിപിയു കോറുകളുടെ എണ്ണത്തിന്റെ സ്വാധീനത്തെക്കുറിച്ച് വെളിച്ചം വീശാതെ നമുക്ക് സിസ്റ്റം ലോഡോ സിസ്റ്റം പ്രകടനമോ വിശദീകരിക്കാൻ കഴിയില്ല.

  • മൾട്ടി-പ്രൊസസർ - രണ്ടോ അതിലധികമോ ഫിസിക്കൽ സിപിയു-കൾ ഒരൊറ്റ കമ്പ്യൂട്ടർ സിസ്റ്റത്തിലേക്ക് സംയോജിപ്പിച്ചിരിക്കുന്നു.
  • മൾട്ടി-കോർ പ്രോസസർ - സമാന്തരമായി പ്രവർത്തിക്കുന്ന കുറഞ്ഞത് രണ്ടോ അതിലധികമോ പ്രത്യേക കോറുകൾ (അല്ലെങ്കിൽ നമുക്ക് പ്രോസസ്സിംഗ് യൂണിറ്റുകൾ എന്നും വിളിക്കാം) ഉള്ള ഒരൊറ്റ ഫിസിക്കൽ സിപിയു ആണ്. അർത്ഥമാക്കുന്നത് ഒരു ഡ്യുവൽ കോറിന് 2 രണ്ട് പ്രോസസ്സിംഗ് യൂണിറ്റുകൾ ഉണ്ട്, ഒരു ക്വാഡ്-കോറിന് 4 പ്രോസസ്സിംഗ് യൂണിറ്റുകൾ ഉണ്ട്.

കൂടാതെ, ഹൈപ്പർ ത്രെഡിംഗ് എന്നറിയപ്പെടുന്ന സമാന്തര കമ്പ്യൂട്ടിംഗ് മെച്ചപ്പെടുത്തുന്നതിനായി ഇന്റൽ ആദ്യമായി അവതരിപ്പിച്ച ഒരു പ്രോസസർ സാങ്കേതികവിദ്യയുമുണ്ട്.

ഹൈപ്പർ ത്രെഡിംഗിന് കീഴിൽ, ഒരൊറ്റ ഫിസിക്കൽ സിപിയു കോർ ഒരു ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിലേക്ക് രണ്ട് ലോജിക്കൽ സിപിയു കോർ ആയി കാണപ്പെടുന്നു (എന്നാൽ യഥാർത്ഥത്തിൽ ഒരു ഫിസിക്കൽ ഹാർഡ്uവെയർ ഘടകമുണ്ട്).

ഒരൊറ്റ സിപിയു കോറിന് ഒരു സമയം ഒരു ജോലി മാത്രമേ ചെയ്യാൻ കഴിയൂ എന്ന കാര്യം ശ്രദ്ധിക്കുക, അങ്ങനെ ഒന്നിലധികം സിപിയു/പ്രോസസറുകൾ, മൾട്ടി-കോർ സിപിയു, ഹൈപ്പർ-ത്രെഡിംഗ് തുടങ്ങിയ സാങ്കേതികവിദ്യകൾ ജീവസുറ്റതാക്കി.

ഒന്നിലധികം സിപിയു ഉപയോഗിച്ച്, ഒരേസമയം നിരവധി പ്രോഗ്രാമുകൾ എക്സിക്യൂട്ട് ചെയ്യാൻ കഴിയും. ഇന്നത്തെ ഇന്റൽ CPU-കൾ ഒന്നിലധികം കോറുകളും ഹൈപ്പർ-ത്രെഡിംഗ് സാങ്കേതികവിദ്യയും സംയോജിപ്പിച്ച് ഉപയോഗിക്കുന്നു.

ഒരു സിസ്റ്റത്തിൽ ലഭ്യമായ പ്രോസസ്സിംഗ് യൂണിറ്റുകളുടെ എണ്ണം കണ്ടെത്തുന്നതിന്, നമുക്ക് ഇനിപ്പറയുന്ന രീതിയിൽ 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

  • സിപിയു പൂർണ്ണമായും (100%) ശരാശരി ഉപയോഗിച്ചു; കഴിഞ്ഞ 1 മിനിറ്റിൽ CPU-ൽ (1.00) 1 പ്രോസസ്സുകൾ പ്രവർത്തിക്കുന്നു.
  • സിപിയു ശരാശരി 60% നിഷ്uക്രിയമായിരുന്നു; കഴിഞ്ഞ 5 മിനിറ്റിൽ CPU സമയത്തിനായി (0.40) ഒരു പ്രക്രിയയും കാത്തുനിന്നില്ല.
  • സിപിയു ശരാശരി 235% ഓവർലോഡ് ചെയ്തു; കഴിഞ്ഞ 15 മിനിറ്റിൽ 2.35 പ്രക്രിയകൾ CPU സമയത്തിനായി (3.35) കാത്തിരിക്കുന്നു.

  • ഒരു CPU ശരാശരി 100% നിഷ്uക്രിയമായിരുന്നു, ഒരു CPU ഉപയോഗിക്കുന്നു; അവസാന 1 മിനിറ്റിൽ CPU സമയത്തിനായി (1.00) പ്രോസസ്സുകളൊന്നും കാത്തുനിന്നില്ല.
  • സിപിയുകൾ ശരാശരി 160% നിഷ്uക്രിയമായിരുന്നു; CPU സമയത്തിനായി ഒരു പ്രക്രിയയും കാത്തുനിന്നില്ല. (0.40) കഴിഞ്ഞ 5 മിനിറ്റിൽ.
  • സിപിയുകൾ ശരാശരി 135% ഓവർലോഡ് ചെയ്തു; 1.35 പ്രോസസ്സുകൾ സിപിയു സമയത്തിനായി കാത്തിരിക്കുന്നു. (3.35) കഴിഞ്ഞ 15 മിനിറ്റിൽ.

നിങ്ങൾക്ക് ഇതുകൂടി ഇഷ്ടപ്പെട്ടേക്കാം:

  1. Linux പ്രകടനം നിരീക്ഷിക്കുന്നതിനുള്ള 20 കമാൻഡ് ലൈൻ ടൂളുകൾ - ഭാഗം 1
  2. 13 ലിനക്സ് പെർഫോമൻസ് മോണിറ്ററിംഗ് ടൂളുകൾ - ഭാഗം 2
  3. പെർഫ്- ലിനക്സിനുള്ള ഒരു പെർഫോമൻസ് മോണിറ്ററിംഗ് ആൻഡ് അനാലിസിസ് ടൂൾ
  4. Nmon: Linux സിസ്റ്റം പ്രകടനം വിശകലനം ചെയ്യുകയും നിരീക്ഷിക്കുകയും ചെയ്യുക

ഉപസംഹാരമായി, നിങ്ങളൊരു സിസ്റ്റം അഡ്uമിനിസ്uട്രേറ്ററാണെങ്കിൽ, ഉയർന്ന ലോഡ് ശരാശരി ആശങ്കപ്പെടേണ്ട കാര്യമാണ്. അവ ഉയർന്നതാണെങ്കിൽ, സിപിയു കോറുകളുടെ എണ്ണത്തിന് മുകളിലാണെങ്കിൽ, അത് സിപിയുവിനുള്ള ഉയർന്ന ഡിമാൻഡിനെ സൂചിപ്പിക്കുന്നു, കൂടാതെ സിപിയു കോറുകളുടെ എണ്ണത്തേക്കാൾ കുറഞ്ഞ ലോഡ് ശരാശരി, സിപിയുകൾ വേണ്ടത്ര ഉപയോഗശൂന്യമാണെന്ന് നമ്മോട് പറയുന്നു.