Na Linux-ie chciałbym wiedzieć, do czego służy API "C", aby uzyskać statystyki per-cpu.Jak mogę uzyskać statystyki per-cpu (system, jałowy, ładny, ...), tak jak robi to polecenie "top"?
Wiem i mogę przeczytać /proc/loadavg
z poziomu mojej aplikacji, ale jest to ogólnosystemowe obciążenie, a nie informacje o jednostce centralnej. Chcę odróżnić poszczególne procesory lub rdzenie.
Jako przykład aplikacji, która to robi, kiedy biegnę top
i naciśnij "1", widzę procesory/rdzenie jak to 4 lub 8:
Cpu0 : 4.5%us, 0.0%sy, 0.0%ni, 95.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu1 : 42.2%us, 6.2%sy, 0.5%ni, 51.2%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu2 : 3.0%us, 1.5%sy, 0.0%ni, 94.5%id, 0.0%wa, 0.0%hi, 1.0%si, 0.0%st
Cpu3 : 7.0%us, 4.7%sy, 0.0%ni, 88.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Próbowałem strace top
ale to doprowadziło do gniazda szczura.
To interesujące pytanie powinno zostać przeniesione na [Unix i Linux.SE.] (Http://unix.stackexchange.com/?as=1) – Vorac
@ Vorac uh, nie? Pyta o C API. Nie powłoki ani pliki urządzeń jądra (chociaż '/ proc' będzie prawdopodobnie i tak używane). – rubenvb
@rubenvb, masz dobry punkt. Z drugiej strony. czytanie pliku w/proc dotyczy w równym stopniu użytkowników, administratorów i programistów. I pytanie jest specyficzne dla Linuksa. Ale tutaj jest też tag 'linux'. Z drugiej strony ta strona jest dość przeciążona i byłoby miło rozpowszechnić niektóre tematy do jej siostrzanych SE-es. Och, tak się pomyliłem. – Vorac