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,下次再写

评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!