2012-12-09 14 views
8

Używam jednożyłowe mały procesor ARM działa pod Debianem i mają problemy ze zrozumieniem wyjście wykorzystania CPU z góry, patrz:Zrozumienie Linux top CPU wyjście wykorzystanie

top - 15:31:54 up 30 days, 23:00, 2 users, load average: 0.90, 0.89, 0.87 
Tasks: 44 total, 1 running, 43 sleeping, 0 stopped, 0 zombie 
Cpu(s): 65.0%us, 20.3%sy, 0.0%ni, 14.5%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st 
Mem:  61540k total, 40056k used, 21484k free,  0k buffers 
Swap:  0k total,  0k used,  0k free, 22260k cached 

    PID USER  PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND                      
26028 root  20 0 2536 1124 912 R 1.9 1.8 0:00.30 top                       
31231 root  19 -1 45260 964 556 S 1.9 1.6 1206:15 owserver                     
    3 root  15 -5  0 0 0 S 0.3 0.0 0:08.68 ksoftirqd/0                     
    694 root  20 0 28640 840 412 S 0.3 1.4 468:26.74 rsyslogd   

Kolumna% CPU jest bardzo nisko nad wszystkie procesy, w tym przykładzie wszystko razem 4,4% (wszystkie inne procesy poniżej były na 0%) Ale procesor allover na linii 3 pokazuje 65% nas i 20% sy, więc zarówno dla bardzo wysokiej wartości - a tak przy okazji, tak odczuwa się system: bardzo wolno :-( System jest prawie zawsze w tym stanie: bardzo niski procesor dla wszystkich procesów, ale wysoki użytkownik + system CPU Czy ktoś może wyjaśnić, dlaczego istnieje taki ah igh niespójności w górnym wyjście narzędzia? I jakie narzędzie mogę użyć, aby lepiej ustalić, co powoduje wysokie wykorzystanie procesora przez użytkownika i użytkownika - top wydaje się tutaj bezużyteczny.

aktualizacja: tymczasem Znalazłem ten wątek here, który omawia similiar pytanie, ale nie mogę sprawdzić, co jest tam napisane:

  • Komenda uptime pokazuje średni wykorzystania procesora za 1/5/15 minut
  • To jest blisko tego, co pierwsza linia top wyprowadza jako suma% us +% sy. Ale to się zmienia o wiele więcej, może jest to średnia za 10s?
  • Nawet jeśli patrząc dłużej na ostatnim wyjściu, suma% nas +% sy zawsze jest kilkakrotnie wyższa niż podsumowanie wszystkich% CPU

Dzięki Achim

Odpowiedz

6

należy przeczytać manpage z top, aby zrozumieć jego wydajność bardziej przenikliwie. Z podręcznika:

% CPU - wykorzystanie procesora

podzielenie tego zadania w czasie, jaki upłynął od CPU od ostatniej aktualizacji ekranu, wyrażona jako procent całkowitego czasu procesora. Domyślny czas aktualizacji ekranu to 3 sekundy, które można zmienić za pomocą #top -d ss.tt. Aby zmierzyć wykorzystanie procesora, uruchom polecenie top -S.

-S: tryb łączny czas przełączania

Rozpoczyna góry z ostatnio zapamiętana stan 'S' odwrócone. Gdy "Tryb skumulowany" jest włączony, każdy proces jest wyświetlany wraz z czasem procesora, którego użył on i jego martwe dzieci.

Stany procesora są wyświetlane w obszarze podsumowania. Są one zawsze wyświetlane w procentach i dotyczą czasu między ostatnim a ostatnim odświeżeniem.

us -- User CPU time 
     The time the CPU has spent running users' processes that are not niced. 

    sy -- System CPU time 
     The time the CPU has spent running the kernel and its processes. 

    ni -- Nice CPU time 
     The time the CPU has spent running users' proccess that have been niced. 

    wa -- iowait 
     Amount of time the CPU has been waiting for I/O to complete. 

    hi -- Hardware IRQ 
     The amount of time the CPU has been servicing hardware interrupts. 

    si -- Software Interrupts 
     The amount of time the CPU has been servicing software interrupts. 

    st -- Steal Time 
     The amount of CPU 'stolen' from this virtual machine by the hypervisor for other tasks (such as running another virtual machine). 

W normalnych okolicznościach% us +% sy powinien być zawsze wyższy.

Powiązane problemy