主要是一个测试学习,对于基于babeltrace 的我以前写过简单的使用,以下主要是基于tracecompass 进行可视化分析
安装lttng
可以直接使用centos 系统自带的,但是推荐使用EfficiOS 源
wget -P /etc/yum.repos.d/ https://packages.efficios.com/repo.files/EfficiOS-RHEL7-x86-64.repo
rpmkeys --import https://packages.efficios.com/rhel/repo.key
yum install kmod-lttng-modules lttng-tools babeltrace lttng-ust
使用
进行内核态trace 信息获取
- 创建session
lttng create my-kernel-session --output=/tmp/my-kernel-trace
效果
- 查看内核态tracepoint
lttng list --kernel
- 配置record规则
lttng enable-event --kernel --all
- 启动会话
lttng start
- 进行一些压测
可以进行io 或者其他操作 - 停止录制
lttng destroy
- 信息查看
- 通过tracecompass 查看信息
说明
基于perf 也是一个不错的选择,但是一般发行版的perf 没有构建ctf 转换,同时构建perf 有点费事。。。,基于ftrace 也是不错的,比如使用trace-cmd 工具,总之方法是很多的,就有lttng 是一个不错的选择,对于性能问题分析是一个不错的选择,结合tracecompass可以节省我们不少时间,同时有一个devrocks 的商业工具,可以直接基于ssh 连接虚拟机,然后通过界面管理lttng 很方便
参考资料
https://lttng.org/
https://github.com/KDAB/hotspot
https://archive.eclipse.org/tracecompass.incubator/doc/org.eclipse.tracecompass.incubator.ftrace.doc.user/User-Guide.html
https://www.brendangregg.com/perf.html
https://github.com/brendangregg/perf-tools
https://archive.eclipse.org/tracecompass/doc/stable/org.eclipse.tracecompass.doc.user/Installation.html#LTTng_Tracer