性能调试
CPU
top
1 | top -H -p <PID> |
只显示指定进程
1 | pstack <PID> |
perf
1 | perf top -p <PID> |
查看函数热点,采样一段时间
1 | perf record -p <PID> -g -- sleep 10 |
strace
1 | strace -ttT -p <PID> |
火焰图
安装perf
1
sudo apt-get install linux-tools-common linux-tools-$(uname -r)
采样数据
1
sudo perf record -F 99 -p <PID> -g -- sleep 30
-F 99 每秒采样 99 次
-p针对指定进程
-g 采集调用栈(火焰图需要)
– sleep 30 采样 30 秒生成调用栈
1
sudo perf script > out.perf
下载 FlameGraph 工具
1
2git clone https://github.com/brendangregg/FlameGraph.git
cd FlameGraph生成火焰图
1
2./stackcollapse-perf.pl ../out.perf > out.folded
./flamegraph.pl out.folded > flamegraph.svg
IO
系统io
1 | iostat -x 1 |
重点关注 await(平均等待时间)和 svctm(服务时间)。如果 await >> svctm,说明队列很长,设备忙不过来。
某个进程io
1 | pidstat -d -p <PID> 1 |