Dlaczego top zgłasza nieprawidłowe użycie procesora?

10

Mam maszynę z Intel(R) Xeon(R) CPU E5520widocznymi 16 rdzeniami logicznymi (8 z HT). Jeśli uruchomię coś do zjedzenia Czas procesora (jednowątkowy), poprawnie poprawnie zgłasza 100% użycia procesora dla procesu, ale tylko około 3-4% całkowitego zużycia.

Cpu(s):  3.6%us,  0.0%sy,  0.0%ni, 96.4%id,  0.0%wa,  0.0%hi,  0.0%si,  0.1%st

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1567 www       20   0 65632   84    4 R  100  0.0   0:05.96 burnMMX

Z pewnością zgłoszone użycie powinno wynosić ~ 6,25% (1 z 16 rdzeni).

  • Czy to nieprawda, ponieważ jest to maszyna wirtualna?
  • Jak mogę obliczyć prawidłową wartość?

źródło
1
możesz spróbować atopzmienić górę, aby zgłosić użycie każdego procesora osobno (naciskając 1)
Hubert Kario
@HubertKario zgłoszone użycie dla każdego rdzenia jest poprawne, więc dlaczego całkowita wartość jest błędna?
Jeśli poziomy wykorzystania poszczególnych rdzeni są prawidłowe, sugerowałoby to błąd na górze tak mało prawdopodobny, jak się wydaje ...
Hubert Kario
To nie byłby pierwszy post na temat nieprawidłowych najlepszych wyników w maszynach wirtualnych. Czy możesz opisać swoją technologię VM oraz systemy operacyjne hosta i gościa?
Nils,
@Nils Xen z gościem Ubuntu / 2.6.32-21-server. Brak informacji o systemie operacyjnym hosta.

Odpowiedzi:

12

topw podsumowaniu wykorzystanie raportów w stosunku do procesora z dodanymi wszystkimi rdzeniami. Z drugiej strony, gdy spojrzysz na listę procesów, najwyższe raporty procentowe odnoszą się do jednego rdzenia (rzeczywistego lub HT). Spróbuj uruchomić proces z 4 wątkami, które mogą pochłonąć 4 rdzenie procesora, znajdziesz go przy użyciu 400% procesora.

Nie wiem dlaczego, ale tak topdziała na wszystkich systemach Linux, które widziałem.

Patkos Csaba
źródło
5

Najczęściej topdziała domyślnie w trybie „Irix”, tak jak to opisano. Jeśli chcesz uzyskać procent całkowitych możliwości procesora (tj. Gdy suma możliwego użycia procesora sumuje się do 100%, a nie cpu_cores_number * 100%), po prostu przełącz tryb „Irix”, naciskając I.

moon.musick
źródło