Linux: zrozumienie średniego obciążenia i% procesora?

4

Kiedy wykonuję toppolecenie w moim systemie Ubuntu, widzę poniższe wyniki

do góry - 07:58:58 do góry 1:21, 1 użytkownik, średnie obciążenie: 0,82, 0,73, 0,55 Zadania: łącznie 293, 1 uruchomiony, 292 śpiący, 0 zatrzymany, 0% zombie% procesorów: 0,8 us, 0,8 sy , ....

Muszę zrozumieć load averagei %cpu.

Moje zrozumienie opiera się na mojej wiedzy i wysokim wykorzystaniu procesora, ale niskiej średniej obciążeniu

Średnie obciążenie

Średnia wartość obciążenia jest miarą liczby zadań oczekujących w kolejce uruchomieniowej jądra (nie tylko czas procesora, ale także aktywność dysku) w danym okresie czasu. Czy to znaczy, że na powyższe wyniki czeka 0,83 zadania? Jak może być liczbą dziesiętną? Co to są trzy różne liczby 0.83 0.73, 0.55?

%PROCESOR

Oznacza to, ile czasu procesor działał w ciągu ostatnich x sekund. Na przykład: - jeśli użycie procesora wyświetla 60%, oznacza to, że w ostatnich x sekundach procesor pracował 60% czasu w x sekundach. Czy rozumiem poprawnie? Jeśli tak, co %Cpu(s): 0.8 usreprezentuje?

Również jeśli mam 4 procesory CPU, a% CPU wyświetla 50%, czy to oznacza, że ​​albo wszystkie rdzenie działają 50%, czy 2 procesory działają w 100%?

użytkownik3198603
źródło

Odpowiedzi:

5

Zrozumienie średniej obciążenia: 0,83 0,73, 0,55

  • Obciążenie jest miarą ilości pracy obliczeniowej wykonywanej przez system. Te trzy wartości są średnią obciążenia w danym przedziale czasu. Odstępy to: ostatnia 1 minuta, 5 minut i 15 minut. Średnia obciążenia jest obliczana jako wykładnicza średnia ruchoma . Jeśli chcesz, możesz głęboko zanurzyć się i przeczytać Badanie średniej wartości obciążenia

  • System jednordzeniowy

    • Średnia wartość obciążenia różni się w zakresie. W przypadku systemu jednordzeniowego wartość ta 0.83oznacza, że ​​Twój procesor miał 83% pojemności w ciągu ostatniej minuty. Wartość 1.0oznacza, że ​​twój procesor ma dokładnie taką pojemność (100%). Przy tej wartości 1.0system zostanie przeciążony przez dodanie choć odrobiny dodatkowej pracy. Wartość większa niż 1.0oznacza, że ​​robi się więcej niż jest w stanie obsłużyć. Nie jest to złe, oznacza tylko, że więcej procesów czeka na czas procesora. Zobaczysz powolność komputera.
  • System wielordzeniowy

    • W systemie wielordzeniowym dzielisz średnią obciążenie przez liczbę posiadanych rdzeni. Na przykład mając średnią wartość obciążenia 0.83i mając 4 rdzenie, wziąłbyś, 0.83 / 4aby uzyskać 0.2075lub (0.83 / 4) * 100uzyskać 20.75%pojemność. W przypadku systemu czterordzeniowego, jeśli średnie obciążenie jest większe niż 4.0to, oznacza to, że wszystkie rdzenie mają 100% pojemności, a każde przeciążenie spowoduje, że procesy będą czekać na czas procesora.
  • Przeciążenie występuje, gdy przekroczysz maksymalną pojemność. Przeciętne obciążenie jako przeciążenie może być nieco mylące, ponieważ opiera się na rdzeniach. Jeśli masz czterordzeniowy procesor, nie przeładujesz, dopóki wartość obciążenia się nie skończy 4.0. Jeśli pierwsza wartość obciążenia była średnia 5.50, oznaczałoby to, że twój system jest przeciążony w 150%, a średnio 1,5 procesu w ostatniej chwili musiało czekać na czas procesora.

Zrozumienie% Cpu (s): 0.8us, 0.8sy ....

  • Ta sekcja pokazuje, w jaki sposób procesor został użyty. Każdy sufiks oznacza coś konkretnego i wskazuje, ile czasu procesor spędził na tym zestawie zadań. Jeśli dodasz wszystkie liczby w tym wierszu wyjściowym, doda to do 100%.

  • Zadania są zdefiniowane jako ... źródło

    • us to procent procesora dla procesów użytkownika
    • sy to procent procesora dla procesów systemowych
    • ni jest procentem procesora z priorytetowym ładnym ładnym jajkiem wielkanocnym Ni
    • id jest procentem niewykorzystanego procesora
    • wa to procent procesów procesora oczekujących na operacje we / wy
    • hi jest procentem procesorów obsługujących przerwania sprzętowe
    • si to procent przerwań oprogramowania obsługującego procesor
    • st w środowisku wirtualnym, część zasobów procesora są podane na każdej maszynie wirtualnej (VM). System operacyjny wykrywa, kiedy ma pracę do wykonania, ale nie może jej wykonać, ponieważ procesor jest zajęty na innej maszynie wirtualnej. Czas stracony w ten sposób to czas kradzieży
DrZoo
źródło
Dzięki DrZoo za tak opisową odpowiedź. Powiedziałeś, Load is the measure of the amount of computational work a system performsże wierzę, że kolejna wyraźna wypowiedź może być, Load is the measure of the amount of computational work a system performs or need to perform (for the processes in queue)gdy mówisz %Cpu(s) section is a displays HOW the CPU has been used, więc jej rodzaj obciążenia procesora jest tylko tam, gdzie jest to miara faktycznej pracy, której nie trzeba wykonywać dla zadań w kolejce.
user3198603
Również, gdy statystyki mówią %Cpu(s): 0.5us, że oznacza to 50% wykorzystania procesora (dla procesu użytkownika), w tym wszystkich rdzeni. Mam na myśli, że jeśli jest to procesor czterordzeniowy, czy doet oznacza, że ​​wszystkie 4 rdzenie działają przez 50% czasu, czy może to być również 2 rdzenie działające w 100% przez ostatnie x sekund? Jeśli tak, jaka jest wartość x dla systemu Ubuntu / Linux?
user3198603
@ user3198603 0.5usoznacza, że mniej niż 1% zadań wykonywanych przez procesor to procesy użytkownika. Jeśli dodasz wszystkie liczby w %Cpu(s)linii wyjściowej, doda to do 100%. Odnosi się to po prostu do całej pracy wykonanej przez procesor, niezależnie od tego, który rdzeń lub rdzenie wykonały tę pracę. %Cpu(s)top - 07:58:58 up
Wydaje
Wielkie dzięki @DrZoo. Czy moje rozumienie pod pierwszym komentarzem jest prawidłowe?
user3198603
@ user3198603 tak, sekcja% Cpu (s) to praca, która została już wykonana. Nie to, co jest w kolejce.
DrZoo,