📄

Ubuntu 22.04でtrace-cmd/KernelSharkをセットアップして可視化する

に公開

Ubuntu 22.04でカーネルトレースを取得し、GUIで可視化する手順です。sudo権限とデスクトップ環境(KernelShark表示用)を前提とします。

インストール

sudo apt update
sudo apt install -y trace-cmd kernelshark

基本的なトレース取得

スケジューライベントを3秒分だけ記録します。

sudo trace-cmd record -e sched_switch -o trace.dat sleep 3
# GUIをrootで起動しないため、生成物の所有者を自分に変更
sudo chown "$USER":"$USER" trace.dat

テキストでざっと中身を確認したい場合:

trace-cmd report trace.dat | head -n 40

KernelSharkで可視化

kernelshark trace.dat

イベントタイムラインやCPU/タスクごとの切り替わりをGUIで確認できます。

利用可能なイベントの確認

sudo trace-cmd list -e

実行例

  • 任意のコマンドの実行中を記録:
    sudo trace-cmd record -e sched_switch -o trace.dat <your_command>
    
  • 追加イベント(IRQやスケジューラ関連)を複数指定:
    sudo trace-cmd record -e sched_switch -e irq_handler_entry -e irq_handler_exit -o trace.dat sleep 3
    

以上

Discussion