perf是Linux下的一款性能分析工具,能够进行函数级与指令级的热点查找。
docker run -dt --privileged=true -p 3333:22 -p 80:80 -v /Users/xx/Desktop/project:/data -v /Users/xx/Desktop/docker/nginx:/usr/server/openresty/nginx/conf/vhost --name mydocker 933bdb63c863 /usr/local/sbin/run.sh
启动docker测试时,记得使用 --privileged=true 允许超级权限模式
yum install 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
最后根据查看消耗指令,综合分析, 排查系统瓶颈。