Zrozumienie średniej obciążenia na Linuksie

Zrozumienie średniej obciążenia na Linuksie
Średnia obciążenia to pomiar ilości pracy w porównaniu z darmowymi cyklami procesora dostępne na procesorze systemowym. W tym artykule zdefiniuję ten termin, pokazuję, jak Linux oblicza tę wartość, a następnie zapewnię wgląd w interpretację obciążenia systemowego.

Różne metody obliczania obciążenia

Zanim zanurzymy się w średnich obciążenia Linux, musimy zbadać różne sposoby obliczania obciążenia i rozwiązać najczęstszy pomiar obciążenia procesora - procent.

Windows oblicza ładowanie inaczej niż Linux, a ponieważ system Windows był historycznie bardziej popularny na komputerze, definicja obciążenia jest ogólnie rozumiana przez większość użytkowników komputerów. Większość użytkowników systemu Windows widziała ładowanie systemu w menedżerze zadań wyświetlanych jako procent od 0% do 100%.

W oknach jest to uzyskiwane przez badanie, w jaki sposób „zajęty” Proces bezczynności systemu jest i używa odwrotności do reprezentowania obciążenia systemowego. Na przykład, jeśli wątek bezczynności wykonuje 99% czasu, obciążenie procesora w systemie Windows wynosiłoby 1%. Ta wartość jest łatwa do zrozumienia, ale zapewnia mniej ogólny szczegół na temat prawdziwego statusu systemu.

W Linux średnia obciążenia jest reprezentowana przez liczbę dziesiętną od 0.00. Wartość można z grubsza zdefiniować jako liczbę procesów w ostatniej minucie, które musiały czekać na ich kolej na wykonanie. W przeciwieństwie do systemu Windows, średnia ładunku Linux nie jest natychmiastowym pomiarem. Obciążenie jest podawane w trzech wartościach - średniej jednej minuty, średniej pięciu minut i średniej piętnastu minut.

Zrozumienie średniej obciążenia w Linux

Na początku ta dodatkowa warstwa szczegółowości wydaje się niepotrzebna, jeśli po prostu chcesz poznać bieżący stan obciążenia procesora w systemie. Ale ponieważ podane są średnie trzech okresów, a nie natychmiastowe pomiar, możesz uzyskać pełniejsze wyobrażenie o zmianie obciążenia systemowego w czasie w jednym spojrzeniu na trzy liczby

Wyświetlanie średniej obciążenia jest proste. W wierszu poleceń możesz użyć różnych poleceń. Po prostu używam polecenia „W”:

root@virgo [~]# w
21:08:43 w górę 38 dni, 4:34, 4 użytkowników, średnia obciążenia: 3.11, 2.75, 2.70

Reszta polecenia wyświetli się, kto jest zalogowany i co wykonuje, ale dla naszych celów te informacje są nieistotne, więc przycięłem je z powyższego wyświetlacza.

W idealnym systemie nie powinien być utrzymywany przez inny proces (lub wątek), ale W jednym systemie procesora, Dzieje się tak, gdy obciążenie przekracza 1.00.

Słowa „System pojedynczego procesora” są tutaj niezwykle ważne. O ile nie prowadzisz starożytnego komputera, Twój komputer prawdopodobnie ma wiele rdzeni procesora. W maszynie mam, mam 16 rdzeni:

root@virgo [~]# nproc
16

W tym przypadku średnia obciążenia 3.11 wcale nie jest niepokojące. Oznacza to po prostu, że nieco więcej niż trzy procesy były gotowe do wykonania, a rdzenie procesora były obecne do obsługi ich wykonania. W tym konkretnym systemie obciążenie musiałoby osiągnąć 16, aby wziąć pod uwagę „100%”.

Aby przetłumaczyć to na procentowe obciążenie systemowe, możesz użyć tego prostego, jeśli nie tępego, polecenia:

Cat /proc /loadavg | Cut -C 1-4 | Skala echo "= 2; ($ (

Te sekwencje poleceń izoluje średnią 1-minutową poprzez cięcie i echem, podzielone przez liczbę rdzeni procesora, poprzez BC, kalkulator wiersza poleceń, aby uzyskać procent.

Ta wartość nie jest w żadnym wypadku naukowym, ale zapewnia przybliżenie obciążenia procesora w procentach.

Minutę, aby się uczyć, przez całe życie do opanowania

W poprzedniej sekcji umieściłem przykład „100%” obciążenia 16.0 w systemie rdzeniowym 16 procesorów w cytatach, ponieważ obliczenia obciążenia w Linux jest nieco bardziej mgliste niż Windows. Administrator systemu musi pamiętać, że:

  • Obciążenie jest wyrażane w procesach oczekujących i wątkach
  • To nie jest wartość natychmiastowa, a raczej średnia i
  • Jego interpretacja musi obejmować liczbę rdzeni procesora i
  • Może nadmiernie napływać oczekiwania we/wy, jak czyta dysk

Z tego powodu uzyskanie uchwytu obciążenia procesora w systemie Linux nie jest całkowicie materią empiryczną. Nawet gdyby tak było, samo obciążenie procesora nie jest odpowiednim pomiarem ogólnego wykorzystania zasobów systemowych. Jako taki, doświadczony administrator Linuksa rozważy obciążenie procesora w porozumieniu z innymi wartościami, takimi jak oczekiwanie we/wy i odsetek czasu jądra w porównaniu z systemem systemu.

I/O Poczekaj

I/O Otając najłatwiej widać za pośrednictwem polecenia „TOP”:

Na powyższym zrzucie ekranu podkreśliłem wartość oczekiwania we/wy. Jest to procent czasu, w którym procesor czekał na polecenia wejściowe lub wyjściowe. Zwykle wskazuje to na wysoką aktywność dysku. Podczas gdy sam wysoki procent oczekiwania może nie znacznie obniżyć zadań związanych z procesorem, zmniejszy wydajność we/wy dla innych zadań i sprawi, że system będzie powolny.

Wysokie I/O Czekanie bez żadnej oczywistej przyczyny może wskazywać na problem z dysku. Użyj polecenia „DMESG”, aby sprawdzić, czy wystąpiły jakieś błędy.

Kernel vs. Czas systemu

Powyższe podświetlone wartości reprezentują czas użytkownika i jądra (system). Jest to podział ogólnego zużycia czasu procesora przez użytkowników (i.mi. Zastosowania itp.) i jądro (i.mi. interakcja z urządzeniami systemowymi). Wyższy czas użytkownika wskazuje większe wykorzystanie procesora według programów, w których wyższy czas jądra wskazuje więcej przetwarzania na poziomie systemu.

Dość średnie obciążenie

Uczenie się związku średniej obciążenia do faktycznej wydajności systemu wymaga czasu, ale wkrótce zobaczysz wyraźną korelację. Uzbrojony w zawiłości wskaźników wydajności systemowej, będziesz mógł podejmować lepsze decyzje dotyczące aktualizacji sprzętu i wykorzystania zasobów programowych.