1 kernelsharkとは?
trace-cmdのGUIフロントエンドツールです。
trace-cmdで採取したデータをグラフィカルに表示することができます。
trace-cmdは、ここ(trace-cmdコマンドの使い方)を参照してください。
本当は、CentOS7でkernelsharkを起動したかったのですが、下記理由で断念しました。
・rpmパッケージがみつからない。
・tar.gzファイルをダウンロード、解凍、makeしたが、コンパイルエラーがとれない。
・gitのソースをmakeしたが、これもコンパイルエラーがとれない。
そこで、CentOS7で採取したtrace-cmdのデータをubuntuのkernelsharkで表示してみました。
なお、公式ページは以下のようです。
まだ、正式版はリリースされていないようです。
http://kernelshark.org/
2 環境
kernelsharkを実行する環境は以下のとおりです。
root@server:~# cat /etc/os-release
NAME="Ubuntu"
VERSION="16.04 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
UBUNTU_CODENAME=xenial
root@server:~# uname -r
4.4.0-127-generic
3 事前準備
3.1 Xサーバのインストール
kernelsharkが出力するGUIをPCで表示するため、PCにXサーバをインストールする必要があります。
PCへのXサーバのインストール方法は、ここ(Xクライアント、サーバの動かし方)を参照してください。
3.2 kernelsharkのインストール
次に、kernelsharkをインストールします。
root@server:~# apt-get install kernelshark
root@server:~# kernelshark -v
kernelshark - 0.2.
4 テスト用データ採取(CentOS7で実施)
trace-cmdを使って、テスト用データを採取します。
ここでは、デフォルトGWに対してpingを1回実行して、データを採取しました。
[root@server ~]# trace-cmd record -p function_graph -F ping -c 1 192.168.3.1
[root@server ~]# ls -l trace.dat
-rw-r--r-- 1 root root 6336512 6月 3 22:40 trace.dat
CentOSで採取したデータをubuntu(192.168.3.100)に転送します。
[root@server ~]# scp trace.dat root@192.168.3.100:/root
5 kernelsharkの起動(ubuntuで実施)
kernelsharkを実行します。
このとき、採取したデータのファイル名を引数に指定します。
root@server:~# kernelshark trace.dat
kernelsharkを実行すると、以下のような画面が表示されます。
pingコマンドを実行すると、inet_sendmsg関数が呼ばれていることがわかります。
なお、<Task>
列のところが<...>
となっています。
ubuntuで採取したデータをubuntuで参照するとping
と表示されたのですが、
今回は、CentOSで採取したデータをubuntuで表示させたためか、
<Task>
にコマンド名が表示されませんでした。