📦
Linux: プロセスの各種リソース使用量の測定ツールまとめ
はじめに
本記事では Linux 環境での特定プロセスのリソース使用量(CPU, GPU, メモリ)の測定ツール/コマンドについてまとめています。ここに記載していないものも当然ありますが、多分普通のプログラムであれば以下のツールを使うことで大体は必要な情報を取得解析出来るのではないかと思います。
CPU/メモリのリソース使用量の測定
top コマンド
UNIX / Linux 環境であればデフォルトで入っているはずのtop
コマンドです。システム全体のCPUとメモリの使用率をパッと確認するときに便利です。
使い方
top
# 3秒間隔で結果を表示
top -d 3
# 0.1秒間隔で結果をファイルに出力
top -b -d 0.1 > log.txt
pidstat コマンド
特定のプロセスの状態を確認したい場合にはpidstat
コマンドの方が便利です。ただし、測定周期の最小値が 1 秒までとなっています。
なお、おそらく標準でインストールされている Linux ディストリビューションはないと思うため、自分でインストールする必要があります。
Ubuntuの場合
apt install sysstat
使い方
# 1秒周期で CPU 使用率を測定
pidstat 1
# メモリ使用率も測定(表示)する
pidstat 1 -ru
# I/Oアクセスを測定する
pidstat 1 -du
# プロセスIDを指定して監視する
pidstat -p <PID>
# 結果をファイルに出力
pidstat 1 -ru > log.txt
perf コマンド
あるプログラムのソースコードの中でボトルネックを見つけたい場合には、perf
コマンドを利用します。
インストール
apt-get install linux-tools-common linux-tools-generic linux-tools-`uname -r`
# 測定開始
$ perf record -- <測定対象のプログラム>
# 結果の確認
$ perf report
GPU のリソース使用量の測定
これは利用している GPU ベンダーに強く依存してしまいます。かつ毎回の測定値のぶれ幅がかなり大きい気がします。。
Intel
インストール
$ sudo apt install intel-gpu-tools
# システム全体を測定
$ sudo intel_gpu_top
# 特定のプロセスを測定
$ sudo intel_gpu_top <プログラムの実行>
Nvidia
nvidia-smiコマンドの詳細ついてを参照のこと。
Discussion