Próbuję uzyskać dokładny odczyt mojego używanego procesora (w procentach) top
. Oto polecenie, które uruchamiam do testowania:
top -n1 | awk '/Cpu\(s\):/ {print $2}'
Zwraca to:
10.7%us,
Który z nich chcę. Jednak za każdym razem, gdy uruchamiam polecenie, otrzymuję takie same dane wyjściowe, mimo że stosuję różne obciążenia w moim systemie (nie wspominając już htop
o tym, że moje użycie jest inne). Wygląda na to, że za każdym razem, gdy uruchamiam top
, użycie procesora jest takie samo. Dopiero po kilku klatkach daje mi odpowiednie wartości.
Nie wydaje się, żebym mógł w ten sposób analizować dane wyjściowe top, więc szukam innych niezawodnych aplikacji, które dadzą mi dokładny odczyt z powłoki. Naprawdę podoba mi się, jak htop
mogę uzyskać odczyt na rdzeń.
Próbowałem iostat
i mpstat
ale wydają się dawać niedokładne wartości i „powolnych zmian”.
źródło
Odpowiedzi:
Używam tego skryptu (z tego wątku na tablicach Arch ):
źródło
Sprawdź również sar . Implementacje mogą się znacznie różnić od nix do nix, ale powinny dawać podstawowe statystyki systemowe przy danych migawkach. Nie jestem pewien, jak dokładne wartości są w punkcie, w którym polecenie jest najpierw inicjowane, ale można bawić się, aby zobaczyć jak to porównać do
top
,iostat
itpDane wyjściowe są oparte na kolumnach, podobnie jak górne, więc powinieneś być w stanie przesyłać dane do wyników
awk
lubcut
manipulować wynikami.źródło
sar
wcześniej z mieszanymi wynikami. Mam zamiar przejść tutaj z odpowiedzią @ jasonwryan, ponieważ mogę ją łatwo zmodyfikować, tak aby reprezentowała użycie obu moich rdzeni procesora.Czy spojrzał
collectl
? Jest to przydatne, ponieważ możesz dostosować wydajność do swoich potrzeb. Zobacz: http://collectl.sourceforge.net/źródło
To, co znalazłem, jest podobne do osoby, która zadała powyższe pytanie, przynajmniej na CentOS 6. Jeśli uruchomię górę w trybie wsadowym tylko dla jednej iteracji, wydaje się, że zbiera tę samą liczbę, prawie tak, jakby jej tendencją było zaczynać od tego, co ostatnio pamięta wyświetlanie. Top wydaje się potrzebować zebrać co najmniej kilka liczb, aby uzyskać delty zapewniające prawidłowe wartości procentowe. Po przetestowaniu ponad 10 iteracji odkryłem, że druga wyskakująca liczba pokazuje wystarczające zróżnicowanie przy każdym uruchomieniu. Łatwo więc przejść przez tę linię
Lubię włączać to z czasem uptime do ładowania i filtrem grep wybranych procesów z ps, takich jak zapytania postgres. Bardzo prosty monitor można wyrazić za pomocą aliasu:
źródło