Izpratne par vidējo slodzi operētājsistēmā Linux

Understanding Load Average Linux



Slodzes vidējais rādītājs ir darba apjoma un brīva CPU cikla mērījums, kas pieejams sistēmas procesorā. Šajā rakstā es definēšu terminu, parādīšu, kā Linux aprēķina šo vērtību, un pēc tam sniegšu ieskatu, kā interpretēt sistēmas slodzi.

Pirms iedziļināties Linux slodzes vidējos rādītājos, mums ir jāizpēta dažādi slodzes aprēķināšanas veidi un jārisina visizplatītākais CPU slodzes mērījums - procents.







Windows aprēķina slodzi atšķirīgi no Linux, un, tā kā Windows vēsturiski ir bijis populārāks darbvirsmā, Windows slodzes definīciju parasti saprot lielākā daļa datoru lietotāju. Lielākā daļa Windows lietotāju ir redzējuši, ka uzdevumu pārvaldniekā sistēma tiek ielādēta procentos no 0% līdz 100%.



Operētājsistēmā Windows to iegūst, pārbaudot, cik aizņemts ir Sistēmas dīkstāves process is un izmantojot apgriezto, lai attēlotu sistēmas slodzi. Piemēram, ja dīkstāves pavediens izpilda 99% laika, CPU slodze sistēmā Windows būtu 1%. Šī vērtība ir viegli saprotama, taču sniedz mazāku informāciju par sistēmas patieso stāvokli.



Operētājsistēmā Linux vidējo slodzi attēlo decimālskaitlis, kas sākas ar 0,00. Vērtību var aptuveni definēt kā procesu skaitu pēdējās minūtes laikā, kuru izpildei bija jāgaida. Atšķirībā no Windows, vidējā Linux slodze nav tūlītējs mērījums. Slodze tiek norādīta trijās vērtībās - vidēji minūtē, piecās minūtēs un piecpadsmit minūtēs.





Izpratne par vidējo slodzi Linux

Sākumā šis papildu detaļu slānis šķiet nevajadzīgs, ja jūs vienkārši vēlaties uzzināt pašreizējo CPU slodzes stāvokli savā sistēmā. Bet, tā kā ir norādīti trīs laika periodu vidējie rādītāji, nevis tūlītējs mērījums, jūs varat iegūt pilnīgāku priekšstatu par sistēmas slodzes izmaiņām laika gaitā, tikai vienā mirklī aplūkojot trīs skaitļus

Vidējās slodzes rādīšana ir vienkārša. Komandrindā varat izmantot dažādas komandas. Es vienkārši izmantoju komandu w:



sakne@Jaunava[~]# collas
divdesmitviens: 08:43uz augšu38dienas,4:3. 4,4 lietotājiem, vidējā slodze:3.11,2.75,2.70

Pārējā komandā tiks parādīts, kurš ir pieteicies un ko viņš izpilda, taču mūsu vajadzībām šī informācija nav būtiska, tāpēc es to izgriezu no iepriekš redzamā displeja.

Ideālā sistēmā nevienu procesu nedrīkst aizkavēt cits process (vai pavediens), bet viena procesora sistēmā, tas notiek, ja slodze pārsniedz 1.00.

Vārdi viena procesora sistēma šeit ir neticami svarīgi. Ja vien jūs nedarbojat senu datoru, jūsu mašīnai, iespējams, ir vairāki CPU kodoli. Iekārtā, kurā es strādāju, man ir 16 kodoli:

sakne@Jaunava[~]# nproc
16

Šajā gadījumā vidējā slodze 3.11 vispār nav satraucoša. Tas vienkārši nozīmē, ka bija gatavi izpildīt nedaudz vairāk par trim procesiem un CPU kodoli bija klāt to izpildei. Šajā konkrētajā sistēmā slodzei vajadzētu sasniegt 16, lai to uzskatītu par 100%.

Lai to pārvērstu procentos balstītā sistēmas slodzē, varat izmantot šo vienkāršo, ja ne neērto, komandu:

kaķis /procenti/loadavg| griezt -c 1-4 | izmest ārā 'skala = 2; ($ (/`nproc`) * 100 ' | bc -viņi

Šī komandu secība izolē 1 minūtes vidējo lielumu, izmantojot izgriezumu, un atkārto to, dalot to ar CPU kodolu skaitu, izmantojot komandrindas kalkulatoru bc, lai iegūtu procentus.

Šī vērtība nekādā ziņā nav zinātniska, bet nodrošina aptuvenu CPU slodzes aptuveno vērtību procentos.

Minūte, lai iemācītos, visu mūžu apgūt

Iepriekšējā sadaļā es ievietoju 16% slodzes 100% piemēru 16 CPU kodolsistēmā pēdiņās, jo slodzes aprēķins Linux ir nedaudz miglaināks nekā Windows. Sistēmas administratoram jāpatur prātā, ka:

  • Slodze tiek izteikta gaidīšanas procesos un pavedienos
  • Tā nav momentāna vērtība, drīzāk vidējā vērtība, un
  • Tās interpretācijā jāiekļauj CPU kodolu skaits un
  • Var pārmērīgi palielināt I/O gaidīšanu, piemēram, nolasot disku

Šī iemesla dēļ CPU slodzes apstrāde Linux sistēmā nav pilnībā empīrisks jautājums. Pat ja tā būtu, CPU slodze vien nav pietiekams sistēmas resursu izmantošanas mērījums. Pieredzējis Linux administrators tādējādi ņems vērā CPU slodzi kopā ar citām vērtībām, piemēram, I/O gaidīšanu un kodola procentuālo attiecību pret sistēmas laiku.

I/O Pagaidiet

I/O gaidīšanu visvieglāk var redzēt, izmantojot augšējo komandu:

Iepriekš redzamajā ekrānuzņēmumā esmu uzsvēris I/O gaidīšanas vērtību. Šī ir laika procentuālā daļa, ko CPU gaidīja, lai pabeigtu ievades vai izvades komandas. Tas parasti norāda uz lielu diska aktivitāti. Lai gan augsts gaidīšanas procents vien nevar būtiski pasliktināt ar CPU saistītus uzdevumus, tas samazinās I/O veiktspēju citiem uzdevumiem un liks sistēmai justies gausa.

Augsta I/O gaidīšana bez acīmredzama iemesla var norādīt uz diska problēmu. Izmantojiet komandu dmesg, lai redzētu, vai nav radušās kļūdas.

Kodols pret sistēmas laiku

Iepriekš izceltās vērtības attēlo lietotāja un kodola (sistēmas) laiku. Tas ir sadalīts CPU (kopējais procesora laiks) kopējais patēriņš pēc lietotājiem (t.i., lietojumprogrammām utt.) Un kodolam (t.i., mijiedarbībai ar sistēmas ierīcēm). Lielāks lietotāja laiks norāda uz lielāku CPU izmantošanu programmās, kur lielāks kodola laiks norāda uz lielāku sistēmas līmeņa apstrādi.

Diezgan vidēja slodze

Vidējās slodzes attiecības ar faktisko sistēmas veiktspēju apgūšana prasa laiku, taču drīz jūs redzēsit atšķirīgu korelāciju. Ņemot vērā sistēmas veiktspējas metrikas sarežģītību, jūs varēsit pieņemt labākus lēmumus par aparatūras jaunināšanu un programmas resursu izmantošanu.