Wo bekommt top
application seine Daten unter Linux? Ich würde interessiert sein in Echtzeit CPU-Last / PID-Daten. (Ich lese fast alle Dokumentation in / proc / pid man Seite, aber die Info ist nicht da).
Das Pid ist ein Jboss. Ich brauche die Daten leicht (um einfach exportiert zu werden).
Wie in proc (5) dokumentiert, haben Sie in der Datei /proc/(pid)/stat
folgende Felder:
%Vor%Zeit, für die dieser Prozess geplant wurde Benutzermodus, gemessen in Taktzeiten (dividiere durch sysconf (_SC_CLK_TCK)) enthält Gast Zeit, guest_time (Zeit verbrachte eine virtuelle CPU laufen, zu sehen unten), so dass Anwendungen, die sind nicht bewusst, das Gast-Zeit-Feld tun verliere diese Zeit nicht von ihren Berechnungen.
%Vor%Zeit, die das ist Prozess wurde im Kernel geplant Modus, in Takt Ticks gemessen (dividieren von sysconf (_SC_CLK_TCK).
Verwenden Sie diese Felder, um die CPU-Auslastung für einen bestimmten Prozess zu erhalten. Der Toplevel-Prozess aggregiert die CPU-Nutzung über alle Threads. Für eine pro-Thread-Aufteilung finden Sie die anderen Threads in /proc/(pid)/task
.
Wenn Sie lieber benachrichtigt werden möchten, wenn die CPU-Zeit einen bestimmten Schwellenwert überschreitet, können Sie clock_getcpuclockid , um ein Handle für die CPU-Zeituhr zu erhalten, dann timer_create oder timerfd benachrichtigt werden, wenn es ein bestimmtes Level erreicht. Beachten Sie jedoch, dass prozessübergreifende cputime-Timer ein optionales Feature in der POSIX-Spezifikation sind und möglicherweise nicht unterstützt werden (ich habe es nicht getestet).
Tags und Links linux process linux-kernel pid top-command