1 perf 分析热点函数
目的 分析高频mysql服务器环境下定位热点函数
命令 perf top -p `pidof mysqld`
环境影响 不会对线上环境产生太大性能影响
问题: 对于不同服务器型号执行此类底层命令慎重,最好先对此类服务器进行测试.本人遇到过HP相关型号的机器执行此命令导致异常重启情况.谨慎
相关参数
-K:不显示属于内核或模块的符号。
-d :界面的刷新周期,默认为2s
-p :仅分析目标进程及其创建的线程。
2 pt-pmp
目的:一是获取进程的堆栈信息,二是对这些堆栈信息进行汇总。
环境影响: 会对mysql服务端的性能有一定的影响,慎重执行
安装: 依赖于gdb包,所以需要安装相关
命令 pt-pmp (默认只分析mysql,如果有多实例,则采用pt-pmp -p指定即可)
pt-pmp --lines n 打印每次出现的第一个函数,重复的会进行统计
3 pt-stack
目的: 当mysqlhang主时,根据此工具分析堆栈信息汇总分析
命令: pstack `pidof mysqld` > pstack.info
pt-pmp pstack.info --lines 1 排序处理
4 补充
pstack 和gdb都可以获取堆栈信息,区别是gdb是交互式的(需要手动退出),pstack是快照形式(执行3s自动退出)
对mysqld使用gdb后,已经建立的连接无法再执行语句,新连接无法建立
后续会深入补充具体应用案例