Wydaje mi się, że pytanie brzmi: czy mogę jakoś obliczyć procent wykorzystania procesora, czytając raz / proc / stat?
# head -1 /proc/stat
cpu 67891300 39035 6949171 2849641614 118251644 365498 2341854 0
Zastanawiam się nad podsumowaniem kolumn z wyjątkiem IOWait (czytałem gdzieś, że jest liczony na biegu jałowym) i to dałoby mi 100%, a każda pojedyncza kolumna mogłaby zostać zamieniona na procent o (kolumna / 100_percent) * 100.
- użytkownik: normalne procesy wykonywane w trybie użytkownika
- nice: ładne procesy wykonywane w trybie użytkownika
- system: procesy wykonywane w trybie jądra
- jałowy: kręcące się kciuki
- iowait: oczekiwanie na zakończenie operacji we / wy
- irq: obsługa przerwań
- softirq: serwisowanie softirqs
- ukraść: mimowolne czekanie
- gość: normalny gość
- guest_nice: prowadzenie miło gości
Czy to jest realne podejście, czy jestem całkowicie poza torem?
Jeśli chcesz oneliner, może to wyglądać tak:
Wynik:
97.17000000000000000000
Jak to działa:
produkuje
( 1055057784 - 1055058055 )/100
następnie ten wiersz do bc. Będę miał coś takiego-7.84000000000000000000
, a potem po prostu ją zawiń100-$(value)
i nakarm ponownie bcTam:
sleep #
- 1 sekundowe opóźnienie, jeśli zmienisz tę wartość, wynik pośredni należy podzielić na liczbę sekund.$5
- Piąte pole, zgodnie zman proc
i http://www.linuxhowtos.org/System/procstat.htmDaj mi znać, jeśli to nie zadziała.
źródło
Lub jeśli jesteś zadowolony z zaledwie dwóch cyfr po tym, jak awk może zrobić to wszystko o wiele łatwiej i bardziej czytelnie:
źródło