rozbieżność między podanym% CPU 'top' a całkowitym zużyciem CPU procesora

1

Zauważyłem, że czasami (duże) różnice między zgłoszonym całkowitym zużyciem procesora a sumą wykorzystania procesora na proces przez dane aplikacje top i wmtop.

Jako przykład: niedawno uruchomiłem git filter-branch --index-filter na dość dużym repozytorium za pomocą potoku polecenia filtru indeksu git ls-files przez a grep filtrować i w xargs git rm --cached. Trwało to kilka minut; kiedy szło, zauważyłem, że oba wmtop i top wyświetlały wysokie (powyżej 50% na moim 2-rdzeniowym komputerze) całkowite wykorzystanie procesora, ale żadne z nich nie pokazało żadnych pojedynczych procesów, które wykorzystywałyby znaczną ilość czasu procesora.

Czy niektóre procesy nie są pokazane na liście procesów? Jakie to są procesy i czy istnieje sposób na sprawdzenie, ile czasu procesora zużywają?

intuited
źródło

Odpowiedzi:

2

Powinieneś dodać migawkę tops wyślij do swojego pytania, abyśmy mogli zobaczyć dokładnie to, co widzisz.

Najczęstszą rozbieżnością we wskaźnikach użycia procesora jest czas zliczania „I / O wait”, a także „faktycznie zajęty CPU”. Czas oczekiwania we / wy to czas procesu by aktywnie robić coś, więc potencjalnie mógł użyć całego przedziału czasowego, który dał mu program planujący, ale ustąpił, ponieważ jest zablokowany, czekając na zakończenie operacji we / wy.

Krótkie działające procesy mają również wpływ: jeśli zaczyna się wiele procesów, robi się coś małego, a następnie zamyka się, mogą one nie być widoczne na wierzchu lub podobne (szczególnie, jeśli często nie masz aktualizacji na najwyższym poziomie), ponieważ zrobiły swoje i zatrzymał się między aktualizacjami. Nawet jeśli nie byli obecni, gdy top pobierał próbki (więc nie pojawiają się na liście zadań), to ogólnie liczą się w /proc system plików będzie nadal pokazywany od ostatniej próbki, gdy CPU był zajęty dla znaczników X schedulera i bezczynny dla Y.

David Spillett
źródło
Ach, myślę, że twój drugi akapit ma to. top odświeżał się co sekundę i filter-branch przetworzono 300 zatwierdzeń w ciągu kilku minut, przy czym każde zatwierdzenie jest przetwarzane przez nowo utworzony proces. Czy istnieje sposób, aby to uzyskać top próbkować częściej bez zmiany częstotliwości odświeżania?
intuited
top nie mogę tego zrobić, ale atop mogą. Powinieneś znaleźć go w standardowych repozytoriach twojego dystrybutora, jeśli nie, możesz go uzyskać (i więcej informacji) od atoptool.nl
David Spillett