Abrufen von CPU-Statistiken pro Thread

Abrufen von CPU-Statistiken pro Thread

Mich interessiert die aktuelle CPU-Auslastung – genauer gesagt CPU% und Wait% – für jeden Thread in einer bestimmten Anwendung. Kann man diese Informationen irgendwoher bekommen?

Ich weiß, dass topdie Informationen pro echtem Thread (jene mit PID) aufgeteilt werden können, aber es zeigt nicht die Aufteilung der System-/Benutzer-/Warte-CPU-Auslastung für jeden von ihnen an. Ich hätte auch gerne eine Möglichkeit, diese Informationen zu protokollieren. Kennen Sie Apps (oder APIs), die das können?

Antwort1

Ich würde mir das ansehenSystemTap. Dieses Tool wird Ihnen sicherlich das geben, was Sie wollen. Es gibtDasBeispiel für Profilerstellungsthreads; ich weiß nicht, ob es alles enthält, was Sie möchten, aber Sie könnten es so ändern, dass es das enthält.

Antwort2

top -H -p pid 

hoffe es kann helfen

Antwort3

Den Prozentsatz der CPU-Auslastung pro Thread können Sie mit psdem folgenden Befehl ermitteln:

 ps -emo %cpu,pid,user,args

Die Berechnungsweise ist beschrieben inps manpage:

Derzeit handelt es sich dabei um die verwendete CPU-Zeit geteilt durch die Laufzeit des Prozesses (Verhältnis CPU-Zeit/Echtzeit), ausgedrückt als Prozentsatz.

Antwort4

Haben Sie SAR ausprobiert? Es kann sogar auf PID-Ebene viele Informationen abrufen.

verwandte Informationen