Ich möchte Daten über die CPU-Auslastung eines EINZELNEN PROZESSES im Zeitverlauf sammeln. Ich habe versucht, die Datensammlung (z. B. mit pidstat) in eine While-Schleife mit einer einsekündigen Pause einzubinden, aber das funktioniert nicht. Ich habe auch versucht, collectl zu verwenden, aber ich konnte keine Option zum Sammeln der Daten eines einzelnen Prozesses finden (ich habe es mit --procfilter p versucht, aber die Ausgabe war nicht zuverlässig).
Gibt es ein Standardtool (möglicherweise Open Source), das die CPU-Auslastung eines EINZELNEN PROZESSES (mithilfe des PID) im Zeitverlauf misst und die Möglichkeit bietet, diese Daten in einer CSV-Datei zu speichern?
Antwort1
Das hier funktioniert:
#!/bin/bash während wahr; tun statist | grep 1117 >>pidload.csv Schlaf 1 Erledigt
Fügen Sie es einfach in ein Shell-Skript ein. 1117 ist in diesem Fall die Prozess-ID, die Sie verfolgen möchten. chmod +x SCRIPTNAME und schon kann es losgehen.
wenn Sie bestimmte Daten wünschen, können Sie diese wie folgt per awk ausführen:
pidstat | grep 1117 | awk '{ print $3, $8 }' >>pidload.csv