SystemProfiler使ってみた
JetsonにはSystemProfilerってのが入っていて時系列にどのスレッドがCPU使用率高めだったのか確認できるらしい、ってことで試しに使ってみた。
前提
- Jetson側にはデータ採取用のドライバか何かが入っているっぽい
- 開発PC側から遠隔でJetson側に接続して測定対象のプロセスにアタッチするか、新しく起動するかして測定する
- 対象プロセスが終了するとデータをダウンロードして開発PC側のGUIにグラフを表示する
という流れ。
SystemProfilerの起動
ubuntuユーザのホームディレクトリでJetPackをインストールした環境だと以下に入っている。
/home/ubuntu/host-x64-linux-public-3.7.224-e982b7b/Host-x86_64
ubuntu@ubuntu-desktop:~/host-x64-linux-public-3.7.224-e982b7b/Host-x86_64$ ./TegraSystemProfiler
sh: 1: adb: not found
とか言われるけど、Androidではないので気にしなくてよさそう?
接続先の設定
画面左上の方に「Manage network connections」のアイコンがある。*1
クリックしてウィンドウを出す。
左下1の「Create a new connection」を押すとSSHの新規接続先を登録できる。
2回目以降はこの画面の2「Connect」を選んでも良いし、最初の画面左上から登録済みのSSH接続先をクリックしても良い。
測定対象アプリの指定
GUIアプリの場合
DISPLAY環境変数に「:0.0」とかを入れておく以外に、Jetson側がnvidiaユーザでログインしている場合、ログアウトしてubuntuユーザでログインしておく必要があるっぽい。JetPack3.0から?デフォルトでnvidiaユーザでのログインになったっぽいので注意が必要。
アプリの標準出力、標準エラー
Jetson側の「/tmp/nvidia/tegra_system_profiler/streams/」にファイルとして保存される。
こんな感じ。
ubuntu@tegra-ubuntu:/tmp/nvidia/tegra_system_profiler/streams$ ls -lh
total 0
- rw-r--r-- 1 root root 0 Jul 24 09:42 pid_6310_stderr.log
- rw-r--r-- 1 root root 0 Jul 24 09:42 pid_6310_stdout.log
ただ、測定を実施するたびに古いファイルが削除されるように見えた。
測定データの場所
デフォルトだと「/home/ubuntu/.tegraprofiler/Projects/Project 1」に入っている。
ubuntu@ubuntu-desktop:~/.tegraprofiler/Projects/Project 1$ ls -lh
合計 95M
- rw-rw-r-- 1 ubuntu ubuntu 6.2K 7月 24 18:56 Project 1.qdproj
- rw-rw-r-- 1 ubuntu ubuntu 69K 7月 18 22:01 Report 1.qdrep
- rw-rw-r-- 1 ubuntu ubuntu 114K 7月 24 18:23 Report 2.qdrep
- rw-rw-r-- 1 ubuntu ubuntu 111K 7月 24 18:29 Report 3.qdrep
- rw-rw-r-- 1 ubuntu ubuntu 112K 7月 24 18:29 Report 4.qdrep
- rw-rw-r-- 1 ubuntu ubuntu 8.3M 7月 24 18:34 Report 5.qdrep
- rw-rw-r-- 1 ubuntu ubuntu 2.2M 7月 24 18:42 Report 6.qdrep
- rw-rw-r-- 1 ubuntu ubuntu 22M 7月 24 18:46 Report 7.qdrep
- rw-rw-r-- 1 ubuntu ubuntu 120M 7月 24 18:34 quadd-e427-6028-235b-4d70-mmap.tmp
こんな感じで各測定データが「Report X.qdrep」という名前のファイルで入っている。
SystemProfiler終了時
GUIを終了させるとターミナルにしばらく
QThread: Destroyed while thread is still running
と表示された後、終了するみたい。すぐ終了しないけど気にしなくてよさそう。
*1:画像は接続済みの状態。未接続状態とはアイコンなどが異なるので注意