bei meinem Modul gibt es eine Instanz zum abrufen von diversen Daten des Raspberry Pi selbst, ähnlich dem RPiMonitor.
Eine Frage hat sich dabei ergeben: Welche Methode ist die Beste, um die CPU auslastung zu bestimmen.
Trival scheint diese hier zu sein:
cat /proc/loadavg
Jedoch wird immer wieder daran gezweifelt ob die Daten korrekt sind.
Auch wird an mancher Stelle
top
favorisiert.
Ich habe mich dazu entschlossen es über
cat /proc/stat
zu versuchen, weil diverse Foren dieses als die Methode mit dem geringsten Messfehler beschreiben.
Hier wird die Funktion der Dateiausführlich erläutert.
Nur: Ich bekomme damit unglaubliche Werte - viel zu konstant nach meiner Einschätzung…
Wie geht ihr da vor? Welche Methode favorisiert ihr?
Die CPU-Auslastung entspricht dem invertierten prozentualen Anteil, den Idle in der Gesamtkalkulation einnimmt. Ein Beispiel für die Datei /proc/stat:
cpu 35421 0 4092 158570 3325 408 6 0
cpu0 35421 0 4092 158570 3325 408 6 0
[...]
Relevant sind jeweils die ersten vier Zahlen, die für User, Nice, System und Idle stehen. Zusammengerechnet geben sie im Beispiel 198'083, wovon der Idle-Wert 158'570 ausmacht, was etwa 80 % des Gesamtwerts entspricht. Die effektive CPU-Auslastung seit Systemstart liegt also bei gerade 20 %. Um eine prozentuale CPU-Auslastung über einen bestimmten Zeitraum zu erhalten, muss die Veränderung dieser Werte über diesen Zeitraum durch zweimaliges Auslesen der Datei ermittelt werden.
Stehe da irgendwie auf dem Schlauch: Ich muss zwei Messungen machen und die Veränderung über die Zeit zwischen diesen ins Verhältnis setzen. Aber was und wie??