Pag-unawa sa Load Average sa Linux

Understanding Load Average Linux



Ang average na pag-load ay isang pagsukat ng dami ng trabaho kumpara sa mga libreng CPU cycle na magagamit sa isang system processor. Sa artikulong ito tukuyin ko ang term, ipapakita kung paano kinakalkula ng Linux ang halagang ito, pagkatapos ay magbigay ng pananaw sa kung paano bigyang kahulugan ang pagkarga ng system.

Bago kami sumisid sa mga average ng pag-load ng Linux, dapat naming tuklasin ang iba't ibang mga paraan ng pagkalkula ng pagkarga at tugunan ang pinakakaraniwang pagsukat ng pag-load ng CPU - isang porsyento.







Kinakalkula ng Windows ang pagkarga ng naiiba mula sa Linux, at dahil ang Windows ay naging mas sikat sa kasaysayan sa desktop, ang kahulugan ng pag-load ng Windows ay karaniwang naiintindihan ng karamihan sa mga gumagamit ng computer. Karamihan sa mga gumagamit ng Windows ay nakakita ng pag-load ng system sa task manager na ipinakita bilang isang porsyento mula sa 0% hanggang 100%.



Sa Windows nagmula ito sa pamamagitan ng pagsusuri kung gaano abala ang Proseso ng Idle ng System ay at ginagamit ang kabaligtaran upang kumatawan sa pag-load ng system. Halimbawa, kung ang idle thread ay nagpapatupad ng 99% ng oras, ang pagkarga ng CPU sa Windows ay magiging 1%. Madaling maunawaan ang halagang ito ngunit nagbibigay ng mas kaunting pangkalahatang detalye tungkol sa totoong katayuan ng system.



Sa Linux, ang average na pag-load ay sa halip ay kinakatawan ng isang decimal number na nagsisimula sa 0.00. Ang halaga ay maaaring tinukoy nang halos bilang ng mga proseso sa nakaraang minuto na naghihintay sa kanilang oras para sa pagpapatupad. Hindi tulad ng Windows, ang average ng pag-load ng Linux ay hindi isang instant na pagsukat. Ang load ay ibinibigay sa tatlong halaga - ang isang minutong average, ang limang minutong average, at ang fifteen minutong average.





Pag-unawa sa Load Average sa Linux

Sa una, ang sobrang layer ng detalye na ito ay tila hindi kinakailangan kung nais mo lamang malaman ang kasalukuyang estado ng pagkarga ng CPU sa iyong system. Ngunit dahil ang average ng tatlong mga tagal ng panahon ay ibinigay, sa halip na isang instant na pagsukat, maaari kang makakuha ng isang mas kumpletong ideya ng pagbabago ng pag-load ng system sa paglipas ng panahon sa isang solong sulyap ng tatlong mga numero

Ang pagpapakita ng average ng pag-load ay simple. Sa linya ng utos, maaari kang gumamit ng iba't ibang mga utos. Ginagamit ko lang ang utos na w:



ugat@Virgo[~]# sa
dalawampu't isa: 08:43pataas38araw,4:3. 4,4 mga gumagamit, Katamtamang karga:3.11,2.75,2.70

Ipapakita ng natitirang utos kung sino ang naka-log on at kung ano ang kanilang isinasagawa, ngunit para sa aming hangarin ang impormasyong ito ay hindi nauugnay kaya't tinabas ko ito mula sa ipinakita sa itaas.

Sa isang mainam na sistema, walang proseso na dapat na gaganapin ng ibang proseso (o thread), ngunit sa isang solong system ng processor, nangyayari ito kapag ang pag-load ay umakyat sa itaas ng 1.00.

Ang mga salitang solong processor system ay hindi kapani-paniwalang mahalaga dito. Maliban kung nagpapatakbo ka ng isang sinaunang computer, marahil ang iyong makina ay may maraming mga CPU core. Sa makina na nasa ako, mayroon akong 16 na core:

ugat@Virgo[~]# nproc
16

Sa kasong ito, ang average na pagkarga ng 3.11 ay hindi nakakabahala. Nangangahulugan lamang ito na medyo higit sa tatlong mga proseso ang handa nang ipatupad at naroroon ang mga core ng CPU upang hawakan ang kanilang pagpapatupad. Sa partikular na sistemang ito, ang pag-load ay kailangang umabot sa 16 upang maituring sa 100%.

Upang isalin ito sa isang porsyento na nakabatay sa pag-load ng system, maaari mong gamitin ang simpleng ito, kung hindi manakit, utos:

pusa /porsyento/loadavg| putol -c 1-4 | itinapon 'scale = 2; ($ (/`nproc`) * 100 ' | bc -ang

Ang pagkakasunud-sunod ng utos na ito ay ibinubukod ang average na 1 minutong pamamagitan ng cut at echos nito, na hinati sa bilang ng mga core ng CPU, sa pamamagitan ng bc, isang calculator ng command-line, upang makuha ang porsyento.

Ang halagang ito ay hindi nangangahulugang pang-agham ngunit nagbibigay ng isang magaspang na paglalapit ng pagkarga ng CPU sa porsyento.

Isang Minuto upang Malaman, isang Pamumuhay sa Master

Sa nakaraang seksyon inilalagay ko ang 100% na halimbawa ng isang pag-load ng 16.0 sa isang 16 CPU core system sa mga quote dahil ang pagkalkula ng pag-load sa Linux ay medyo mas nebulous kaysa sa Windows. Dapat tandaan ng administrator ng system na:

  • Ang pag-load ay ipinahayag sa mga proseso ng paghihintay at mga thread
  • Ito ay hindi isang instant na halaga, sa halip isang average, at
  • Ang interpretasyon ng ito ay dapat na may kasamang bilang ng mga core ng CPU, at
  • Maaaring labis na pagpapalaki ng I / O naghihintay tulad ng disk na nagbabasa

Dahil dito, ang pagkuha ng hawakan ng pagkarga ng CPU sa isang sistema ng Linux ay hindi isang buong empirical na bagay. Kahit na kung ito, ang pag-load ng CPU lamang ay hindi sapat na pagsukat ng pangkalahatang paggamit ng mapagkukunan ng system. Tulad ng naturan, isasaalang-alang ng isang bihasang administrador ng Linux ang pagkarga ng CPU kasabay ng iba pang mga halaga tulad ng paghihintay ng I / O at ang porsyento ng kernel kumpara sa oras ng system.

Ako / O Maghintay

Ang paghihintay ng I / O ay madaling makita sa pamamagitan ng nangungunang utos:

Sa screenshot sa itaas ay na-highlight ko ang halagang paghihintay ng I / O. Ito ay isang porsyento ng oras na naghihintay ang CPU sa mga utos na input o output upang makumpleto. Karaniwan itong nagpapahiwatig ng aktibidad ng mataas na disk. Habang ang isang mataas na porsyento ng paghihintay na nag-iisa ay maaaring hindi makabuluhang mapamura ang mga gawain na nakasalalay sa CPU, mababawasan nito ang pagganap ng I / O para sa iba pang mga gawain at magpapabagal sa pakiramdam ng system.

Mataas na paghihintay ng I / O nang walang anumang halatang sanhi ay maaaring magpahiwatig ng isang problema sa isang disk. Gamitin ang utos ng dmesg upang makita kung may mga naganap na error.

Kernel kumpara sa Oras ng System

Ang mga halagang naka-highlight sa itaas ay kumakatawan sa oras ng gumagamit at kernel (system). Ito ay isang pagkasira ng pangkalahatang pagkonsumo ng oras ng CPU ng mga gumagamit (ibig sabihin, mga application, atbp.) At ang kernel (ibig sabihin, pakikipag-ugnay sa mga aparato ng system). Ang mas mataas na oras ng gumagamit ay magpapahiwatig ng higit na paggamit ng CPU ng mga programa kung saan ang mas mataas na oras ng kernel ay magpapahiwatig ng mas maraming pagpoproseso sa antas ng system.

Isang Makatarungang Naglo-load

Ang pag-aaral ng ugnayan ng average ng pag-load sa aktwal na pagganap ng system ay tumatagal ng oras, ngunit hindi magtatagal makakakita ka ng isang natatanging ugnayan. Armado ng mga intricacies ng mga sukatan sa pagganap ng system, makakagawa ka ng mas mahusay na mga desisyon tungkol sa mga pag-upgrade sa hardware at paggamit ng mapagkukunan ng programa.