Разумевање просека оптерећења на Линук -у

Understanding Load Average Linux



Просечно оптерећење је мерење количине посла у односу на слободне циклусе процесора који су доступни на системском процесору. У овом чланку ћу дефинисати појам, показати како Линук израчунава ову вредност, а затим пружити увид у то како тумачити оптерећење система.

Пре него што уђемо у просек оптерећења Линука, морамо истражити различите начине израчунавања оптерећења и позабавити се најчешћим мерењем оптерећења процесора - процентом.





Виндовс израчунава оптерећење другачије од Линука, а будући да је Виндовс историјски био популарнији на радној површини, Виндовс рачунарску дефиницију оптерећења генерално разуме већина корисника рачунара. Већина корисника оперативног система Виндовс видело је да је оптерећење система у управитељу задатака приказано као проценат у распону од 0% до 100%.



У оперативном систему Виндовс ово се изводи испитивањем колико је заузет Процес мировања система је и користећи инверз за представљање оптерећења система. На пример, ако се празна нит извршава 99% времена, оптерећење процесора у систему Виндовс би било 1%. Ова вредност је лако разумљива, али пружа мање општих детаља о правом статусу система.



У Линуку је просек учитавања уместо тога представљен децималним бројем који почиње од 0,00. Вредност се може грубо дефинисати као број процеса у протеклом минуту који су морали да чекају свој ред за извршење. За разлику од Виндовса, просек оптерећења Линука није тренутно мерење. Оптерећење је дато у три вредности - једноминутни просек, петоминутни просек и петнаестоминутни просек.





Разумевање просека оптерећења у Линуку

У почетку, овај додатни слој детаља изгледа непотребан ако једноставно желите да знате тренутно стање оптерећења ЦПУ -а у вашем систему. Али пошто су дати просеци три временска периода, уместо тренутног мерења, можете добити потпунију идеју о промени оптерећења система током времена једним погледом на три броја

Приказивање просека оптерећења је једноставно. На командној линији можете користити различите команде. Једноставно користим команду в:



корен@Девица[~]# ин
двадесет један: 08:43горе38дана,4:3. 4,4 корисника, просечно оптерећење:3.11,2.75,2.70

Остатак наредбе ће приказати ко је пријављен и шта извршава, али за наше потребе ове информације нису битне па сам их исекао са горњег екрана.

У идеалном систему, ниједан процес не би требао бити задржан другим процесом (или нити), али у једном процесорском систему, ово се дешава када оптерећење пређе 1,00.

Речи једнопроцесорски систем су овде невероватно важне. Осим ако не користите стари рачунар, ваша машина вероватно има више језгара процесора. У машини на којој се налазим имам 16 језгара:

корен@Девица[~]# нпроц
16

У овом случају, просек оптерећења од 3,11 уопште није алармантан. То једноставно значи да је нешто више од три процеса било спремно за извођење и да су присутна ЦПУ језгра која су се бавила њиховим извршавањем. На овом систему, оптерећење би морало да достигне 16 да би се сматрало 100%.

Да бисте ово превели у оптерећење система засновано на процентима, можете користити ову једноставну, ако не и тупу команду:

мачка /проценат/лоадавг| исећи 1-4 | Избацио 'сцале = 2; ($ (/`нпроц`) * 100 ' | пре нове ере -тхе

Ове наредбене секвенце изолују просек од 1 минута путем сечења и одражавају га, подељено са бројем језгара процесора, преко бц, калкулатора командне линије, да би се извео проценат.

Ова вредност никако није научна, али пружа грубу апроксимацију оптерећења процесора у процентима.

Минута за учење, цео живот за савладавање

У претходном одељку ставио сам 100% пример оптерећења од 16,0 на језгру система са 16 процесора под наводнике јер је прорачун оптерећења у Линуку мало магловитији од Виндовса. Администратор система мора имати на уму да:

  • Оптерећење се изражава у процесима чекања и нитима
  • То није тренутна вредност, већ просек, и
  • Његово тумачење мора укључивати број ЦПУ језгара и
  • Може претјерано напухати И/О чекање као читање диска

Због тога, преузимање руковања оптерећењем процесора на Линук систему није сасвим емпиријска ствар. Чак и да јесте, само оптерећење процесора није адекватно мјерење укупне искориштености системских ресурса. Као такав, искусни администратор Линука разматраће оптерећење процесора заједно са другим вредностима, као што су И/О чекање и проценат кернела у односу на системско време.

И/О Ваит

И/О чекање се најлакше види помоћу горње команде:

На горњој снимци екрана означио сам вредност чекања за У/И. Ово је проценат времена које је ЦПУ чекао на улазне или излазне команде да се заврши. Ово обично указује на високу активност диска. Иако сам високи постотак чекања можда неће значајно деградирати задатке везане за ЦПУ, то ће смањити перформансе И/О за друге задатке и учинит ће да се систем осјећа споро.

Чекање високог И/О без очигледног узрока може указивати на проблем са диском. Користите команду дмесг да видите да ли је дошло до грешака.

Кернел вс Систем Тиме

Горе истакнуте вредности представљају време корисника и језгра (система). Ово је преглед укупне потрошње ЦПУ времена од стране корисника (тј. Апликација итд.) И кернела (тј. Интеракције са системским уређајима). Веће време корисника ће указивати на већу потрошњу процесора од стране програма где ће веће време језгра указивати на више обраде на нивоу система.

Прилично просечно оптерећење

Учење односа просечног оптерећења и стварних перформанси система захтева време, али ћете ускоро видети јасну корелацију. Наоружани замршеним показатељима перформанси система, моћи ћете да доносите боље одлуке о надоградњи хардвера и коришћењу програмских ресурса.