📦

Linux: プロセスの各種リソース使用量の測定ツールまとめ

2023/11/12に公開

はじめに

本記事では 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