web-dev-qa-db-ja.com

スレッドごとのCPU統計の取得

特定のアプリケーションの各スレッドについて、cpuの現在の使用状況(正確にはcpu%とwait%)に興味があります。その情報をどこかから入手することは可能ですか?

私はtopが実際のスレッド(pidを含むもの)ごとに情報を分割できることを知っていますが、システム/ユーザー/待機CPU使用量の分割をそれぞれについて表示しません。また、その情報を記録する方法も教えてください。それができるアプリ(またはAPI)を知っていますか?

17
viraptor

SystemTap を調べます。このツールは確かにあなたが望むものを提供します。 this スレッドのプロファイリングの例があります。必要なものがすべて含まれているかどうかはわかりませんが、必要に応じて変更できます。

4
Mei
top -H -p pid 

それが役に立てば幸い

14
liu bluse

psコマンドで取得できるスレッドあたりのCPU使用率のパーセント:

 ps -Emo %cpu,pid,user,args

計算方法は ps manpage

現在、これは、使用されているCPU時間をプロセスが実行されている時間で割った値(cputime/realtime ratio)で、パーセンテージで表されています。

12
lexsys

たぶんhtopを見てください。これでかなり多くの設定ができます。

0
Sven

Sarを試しましたか? pidレベルでも多くの情報を取得できます。

0
LA

NagiosとPNP http://docs.pnp4nagios.org/pnp-0.4/start

素晴らしい作品です...設定はほとんどありません.

0
fsckin

私は、これを調べるための豪華なツールがない組み込みシステムでこれに遭遇しました。

このため、私はcpuacct cgroupし、各スレッドを独自のフォルダーに配置します。このようにして、それらの使用量を測定することができました。

階層は次のようになっています。

my-app.service
|-tid1
|-tid2
|-tid3

それから私はそれを

my-app.service
|-dir1
|  -tid1
|-dir2
|  -tid2
|-dir3
|  -tid3
0
Umut