歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux Trace Toolkit Viewer 的使用

Linux Trace Toolkit Viewer 的使用

日期:2017/2/28 16:08:33   编辑:Linux教程

Linux Trace Toolkit (LTT)能夠從內核獲得所有的執行信息。
它基於內核工具和高速中繼文件系統來從內核空間拷貝信息到用戶空間。

Linux Trace Toolkit Viewer (LTTV)是個可視化工具。

- 使用圖形模式
$ lttv-gui
------------
- 在/usr/local/lib/lttv/plugins目錄下能夠看到所有的模塊。
獲得相應模塊的幫助使用:
$ lttv -L /usr/local/lib/lttv/plugins -m textDump --help

-使用LTTV 字符模式
$ lttv -L path/to/lib/plugins -m batchAnalysis -t trace1 -t trace2 ...
$ lttv -L /usr/local/lib/lttv/plugins -m batchAnalysis -t //????? trace1的名字??

$ lttv -L path/to/lib/plugins -m batchAnalysis -s -m textDump -s -t trace
===========?????? ==========
系統配置:
#mkdir /mnt/debugfs
#cp /etc/fstab /etc/fstab.lttng.bkp //備份文件
#echo "debugfs /mnt/debugfs debugfs rw 0 0" >> /etc/fstab
重啟,或者,
# mount /mnt/debugfs 激活 debugfs

必須加載LTT模塊來控制對用戶空間的跟蹤。
通過執行如下的命令完成。
modprobe ltt-trace-control
modprobe ltt-marker-control
modprobe ltt-tracer
modprobe ltt-relay
modprobe ipc-trace
modprobe kernel-trace
modprobe mm-trace
modprobe net-trace
modprobe fs-trace
modprobe jbd2-trace
modprobe ext4-trace
modprobe syscall-trace
modprobe trap-trace
modprobe block-trace

#if locking tracing is wanted, uncomment the following
#如果想鎖住跟蹤,就執行下面的命令
#modprobe lockdep-trace

要得到完全的內核狀態的信息(包括所有進程的名字),那麼需要加載ltt-statedump模塊。
#modprobe ltt-statedump

要在啟動時自動完成上面的過程,可以
cp /etc/modules /etc/modules.bkp
echo ltt-trace-control >> /etc/modules
echo ltt-marker-control >> /etc/modules
echo ltt-tracer >> /etc/modules
echo ltt-relay >> /etc/modules
echo ipc-trace >> /etc/modules
echo kernel-trace >> /etc/modules
echo mm-trace >> /etc/modules
echo net-trace >> /etc/modules
echo fs-trace >> /etc/modules
echo jbd2-trace >> /etc/modules
echo ext4-trace >> /etc/modules
echo syscall-trace >> /etc/modules
echo trap-trace >> /etc/modules

#if locking tracing is wanted, uncomment the following
#echo lockdep-trace >> /etc/modules

用戶空間的跟蹤:

確保內核配置時:
<M> 或 <*> Support logging events from userspace
並且,如果ltt-userspace-event 內核模塊作為模塊被編譯的話,
那麼,要加載該模塊
#modprobe ltt-userspace-event
Simple userspace tracing is available through
echo "some text to record" > /mnt/debugfs/ltt/write_event

It will appear in the trace under event :
channel : userspace
event name : event

LTTng 和 LTTV的使用

=====使用 圖形化的LTTV來控制和分析跟蹤:
#ttv-gui
-點擊 “tracing Control " 圖標(交通燈的圖標)
- 輸入 root的密碼
- 點擊“start“, ”stop'...
- 使用字符模式LTTng來控制跟蹤:
開始跟蹤:
#lttctl -C -w /tmp/trace1 trace1
停止跟蹤銷毀跟蹤通道:
#lttctl -D trace1
更多的細節,查看 lttctl --help

====使用字符模式LTTV

在/usr/local/lib/lttv/plugins 下,有所有的字符和圖形模式的插件。
#lttv -m textDump -t /tmp/trace
//執行後,我的終端輸出了????
/tmp/trace: No such file or directory
** (process:10813): CRITICAL **: cannot open trace /tmp/trace
/usr/local/bin/lttv: line 15: 10813 段錯誤 $0.real "$@"

#lttv -m textDump --help //獲取幫助

=== 使用“混合”模式跟蹤
創建一個跟蹤通道,在普通通道上啟動lttd, 開始跟蹤:
# lttctl -C -w /tmp/trace2 -o channel.kernel.overwrite=1 trace2
Linux Trace Toolkit Trace Control 0.89-05122011
Controlling trace : trace2
lttctl: Creating trace
lttctl_sendop: open /sys/kernel/debug/ltt/control/trace2/channel/kernel/overwrite failed: No such file or directory
Set channel's overwrite mode failed
停止跟蹤,在flight recorder channels,銷毀跟蹤通道:
# lttctl -D -w /tmp/trace2 trace2

=== Flight recorder mode

The flight recorder mode writes data into overwritten buffers for all channels, including control channels, except for the facilities tracefiles. It consists of setting all channels to "overwrite".

The following lttctl commands take a flight recorder trace :

lttctl -C -w /tmp/trace3 -o channel.all.overwrite=1 trace3
...
lttctl -D -w /tmp/trace3 trace3

Copyright © Linux教程網 All Rights Reserved