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