pstack的作用
1). 查看线程数(比pstree, 包含了详细的堆栈信息)
2). 能简单验证是否按照预定的调用顺序/调用栈执行
3). 采用高频率多次采样使用时, 能发现程序当前的阻塞在哪里, 以及性能消耗点在哪里?
4). 能反映出疑似的死锁现象(多个线程同时在wait lock, 具体需要进一步验证)
pstack的安装
pstack是gdb的一部分,如果系统没有pstack命令,使用yum搜索安装gdb即可
yum install gdb -y
pstack 与 gstack 区别
pstack是/usr/bin/gstack的软链接
使用实例
问题:php某进程一直卡着在running,找不到具体原因
执行 gstack 1696 效果如下:
可以看到运行堆栈信息已经打印出来,可根据信息排错,其实这里没有剥离符号信息才能看到
如果使用strip剥离符号表,有些接口就显示不出来了
还有更好用的starce,下次再写