Pochopenie priemeru záťaže v systéme Linux

Understanding Load Average Linux



Priemer záťaže je mierou množstva práce oproti voľným cyklom CPU, ktoré sú k dispozícii na systémovom procesore. V tomto článku definujem termín, ukážem, ako Linux vypočítava túto hodnotu, a potom poskytnem prehľad o tom, ako interpretovať zaťaženie systému.

Predtým, ako sa ponoríme do priemerov zaťaženia Linuxu, musíme preskúmať rôzne spôsoby výpočtu záťaže a zaoberať sa najbežnejším meraním zaťaženia CPU - percentom.







Windows vypočítava zaťaženie odlišne od Linuxu a keďže Windows sú historicky na stolnom počítači obľúbenejšie, definícii zaťaženia systému Windows väčšina používateľov počítačov rozumie. Väčšina používateľov systému Windows videla načítanie systému v správcovi úloh zobrazené v percentách od 0% do 100%.



V systéme Windows je to odvodené skúmaním zaneprázdnenosti Proces nečinnosti systému je a pomocou inverzného systému reprezentuje zaťaženie systému. Ak sa napríklad nečinné vlákno spustí 99% času, zaťaženie procesora v systéme Windows bude 1%. Táto hodnota je ľahko zrozumiteľná, ale poskytuje menej celkových podrobností o skutočnom stave systému.



V systéme Linux je priemer záťaže reprezentovaný desatinným číslom od 0,00. Hodnotu možno zhruba definovať ako počet procesov za poslednú minútu, ktoré museli čakať na vykonanie. Na rozdiel od systému Windows nie je priemer zaťaženia systému Linux okamžitým meraním. Zaťaženie je uvedené v troch hodnotách - priemer jedna minúta, priemer päť minút a priemer pätnásť minút.





Pochopenie priemeru záťaže v systéme Linux

Na začiatku sa zdá, že táto extra vrstva podrobností nie je potrebná, ak chcete jednoducho poznať aktuálny stav zaťaženia procesora vo vašom systéme. Pretože sú však uvedené priemery troch časových období, nie okamžité meranie, môžete získať úplnejšiu predstavu o zmene zaťaženia systému v priebehu času jediným pohľadom na tri čísla.

Zobrazenie priemeru záťaže je jednoduché. Na príkazovom riadku môžete použiť rôzne príkazy. Jednoducho použijem príkaz w:



koreň@Panna[~]# in
dvadsaťjeden: 08:43hore38dni,4:3. 4,4 používateľov, priemer zaťaženia:3.11,2,75,2,70

Zvyšok príkazu zobrazí, kto je prihlásený a čo vykonáva, ale pre naše účely sú tieto informácie irelevantné, takže som ich vystrihol z vyššie uvedeného zobrazenia.

V ideálnom systéme by žiadny proces nemal zdržiavať iný proces (alebo vlákno), ale v systéme s jedným procesorom, k tomu dochádza, keď zaťaženie prekročí 1,00.

Slová jeden procesorový systém sú tu mimoriadne dôležité. Pokiaľ nepoužívate starý počítač, pravdepodobne má váš počítač viac jadier CPU. V stroji, na ktorom som, mám 16 jadier:

koreň@Panna[~]# nproc
16

V tomto prípade priemer zaťaženia 3,11 nie je vôbec alarmujúci. Jednoducho to znamená, že na spustenie boli pripravené o niečo viac ako tri procesy a boli prítomné jadrá procesora. V tomto konkrétnom systéme by zaťaženie muselo dosiahnuť 16, aby sa považovalo za 100%.

Na preloženie do percentuálneho zaťaženia systému môžete použiť tento jednoduchý, ak nie tupý príkaz:

kat /percent/zaťaženie| rezať -c 1-4 | zahodil „mierka = 2; ($ (/`nproc`) * 100 ' | bc -ten

Tieto sekvencie príkazov izolujú 1-minútový priemer strihom a echos ho delia počtom jadier CPU cez bc, kalkulačku príkazového riadka, na odvodenie percenta.

Táto hodnota nie je nijak vedecká, ale poskytuje približnú aproximáciu zaťaženia CPU v percentách.

Minúta na učenie, majstrovstvo na celý život

V predchádzajúcej časti som uviedol 100% príklad záťaže 16.0 na 16 -jadrový systém jadra v úvodzovkách, pretože výpočet záťaže v Linuxe je o niečo hmlistejší ako Windows. Správca systému musí mať na pamäti, že:

  • Zaťaženie je vyjadrené v procesoch čakania a vláknach
  • Nejde o okamžitú hodnotu, skôr o priemer a
  • Jeho interpretácia musí zahŕňať počet jadier CPU a
  • Môže nadmerné nafúknutie I/O čakať ako čítanie disku

Z tohto dôvodu nie je zvládnutie zaťaženia procesora v systéme Linux úplne empirickou záležitosťou. Aj keby to bolo, samotné zaťaženie CPU nie je adekvátnym meradlom celkového využitia systémových zdrojov. Skúsený správca systému Linux bude preto brať do úvahy zaťaženie procesora v súlade s inými hodnotami, ako napríklad čakanie na I/O a percento jadra oproti systémovému času.

I/O Počkajte

Čakanie na I/O je najľahšie viditeľné pomocou príkazu top:

Na obrázku vyššie som zvýraznil hodnotu čakania na I/O. Toto je percento času, ktorý CPU čakal na dokončenie vstupných alebo výstupných príkazov. To zvyčajne naznačuje vysokú aktivitu disku. Aj keď samotné vysoké percento čakania nemusí výrazne degradovať úlohy viazané na procesor, zníži výkon I/O pri iných úlohách a spôsobí, že sa systém bude zdať pomalý.

Vysoké čakanie na I/O bez zjavnej príčiny môže znamenať problém s diskom. Pomocou príkazu dmesg zistíte, či nedošlo k chybám.

Jadro vs. systémový čas

Vyššie uvedené zvýraznené hodnoty predstavujú čas používateľa a jadra (systému). Toto je rozpis celkovej spotreby času CPU podľa používateľov (t.j. aplikácií atď.) A jadra (t.j. interakcia so systémovými zariadeniami). Vyšší užívateľský čas bude znamenať väčšie využitie CPU programami, kde vyšší čas jadra bude znamenať viac spracovania na úrovni systému.

Pomerne priemerné zaťaženie

Naučenie sa vzťahu priemerného zaťaženia k skutočnému výkonu systému chvíľu trvá, ale onedlho uvidíte výraznú koreláciu. Vyzbrojení zložitosťou metrík výkonu systému, budete sa môcť lepšie rozhodovať o inováciách hardvéru a využití zdrojov programu.