今天简单分享下 perf 工具的使用吧.
perf 是 Linux 下的一款性能分析工具, 能够进行函数级与指令级的热点查找.
1. 启动 docker 系统
docker run -dt --privileged=true -p 3333:22 -p 80:80 -v /Users/wenba/Desktop/project:/data -v /Users/wenba/Desktop/docker/nginx:/usr/server/openresty/nginx/conf/vhost --name mydocker 933bdb63c863 /usr/local/sbin/run.sh
启动 docker 测试时, 记得使用 --privileged=true 允许超级权限模式
2. 安装 perf
yum install perf
3. perf 几个常用命令
- # 统计全局性能
- perf record -g
一段时间后
- # 查看记录
- perf report
查看某个进程的异常问题
- # 查看进程 ID
- ps aux|grep index.PHP
- # 查看记录
- perf record -p 276
一段时间后
- # 查看记录
- perf report
通过分析可以看到在哪些地方占用了更多的 CPU, 我们看到有个 pow_function, 可以回车进入看到具体的执行指令
实时的观测
我们还可以使用类似 top 的指令用法
- # 全局性能观测
- perf top
- # 监控某个进程
- perf top -p 327
我们还可以
- # 根据 comms 限定范围
- perf top --comms nginx,PHP
可能并不是一个进程在提供服务, 如果需要全部分析的话可以利用, 分隔
perf top -p 23015,32476
最后根据查看消耗指令, 综合分析, 排查系统瓶颈.
来源: https://juejin.im/post/5c83c07b6fb9a04a01652438