not-perf 类似perf,但是实现了cpu 无关,可以开箱即用
支持的特性
- 支持多种cpu 架构
- 支持离线以及在线stack trace展开
- 支持不带debuginfo 的分析
- 支持跨架构数据分析
- 架构无关的数据费事
- 内置火焰图
参考使用
- 支持的命令
nperf-core 0.1.1
Jan Bujak <[email protected]>
USAGE:
nperf <SUBCOMMAND>
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
SUBCOMMANDS:
collate Emits collated stack traces for use with Brendan Gregg's flamegraph script
csv Emits a CSV file
flamegraph Emits an SVG flamegraph
help Prints this message or the help of the given subcommand(s)
metadata Outputs rudimentary JSON-formatted metadata
record Records profiling information with perf_event_open
trace-events Emits trace events for use with Chromium's Trace Viewer
- trace nginx
注意内核可能需要配置echo 0 > /proc/sys/kernel/perf_event_paranoid
nperf record -P nginx
效果
进行一个压测
- 生成火焰图
nperf flamegraph 20230505_020349_02059_nginx.nperf > /opt/apps/flame.svg
效果(如何包含了debug 信息分析会更加全的)
说明
因为默认官方的构建使用高版本的glibc 我自己构建了一个支持centos7 的,具体参考github
参考资料
https://github.com/koute/not-perf
https://github.com/rongfengliang/not-perf-package/releases/tag/v0.1.1
https://github.com/rongfengliang/not-perf-package/blob/main/flame.svg