Linux进程死锁定位
admin
2023-03-07 01:41:57
0

Linux进程死锁定位

最近定位一个服务问题时发现telnet某个端口,无法链接。无奈之下只能一步步排查。

端口是否存在

ss -l|grep LISTEN|grep 9999

如果端口存在那么可以观察该端口上的recv-q send-q 如果是发生死锁一般情况下这两个队列只会增加(当然当服务处理过慢时也会导致包堆积)

Recv-Q Send-Q Local Address:Port Peer Address:Port 
0 1024 *:5200 *:* 
  1. 另外可以通过一下命令统计各类socket 状态的数据
    ss |awk 'BEGIN{arr[""]=0}{arr[$1]++}END{for(i in arr) print i,arr[i]}'
    LAST-ACK 1305
    ESTAB 341643
    State 1
    FIN-WAIT-1 7553
    CLOSING 3
    FIN-WAIT-2 908
    CLOSE-WAIT 60067

    如果你的服务是多个进程那么,如果只是一个进程死锁,那么很容易就可以看出来该进程的cpu消耗时间应该小于其他进程,当然这个取决于进程的运行时间。下面的进程中,id=1903的进程就是疑似死锁问题。

    
    root 1901 1 0 11:09 ? 00:00:00 ./client -f ../conf/client.ini -d

root 1902 1901 15 11:09 ? 00:31:55 ./client -f ../conf/client.ini -d

root 1903 1901 1 11:09 ? 00:02:25 ./client -f ../conf/client.ini -d

root 1904 1901 15 11:09 ? 00:31:19 ./client -f ../conf/client.ini -d

root 1905 1901 15 11:09 ? 00:31:17 ./client -f ../conf/client.ini -d

定位哪里死锁

经过一步步盘查之后,怀疑进程死锁,ok。最好的定位方法就是attach到进程,然后bt一下既可以看到进程hang在哪里。。。

$gdb attach 1903

#0 0x00007f105892105e in __lll_lock_wait_private () from /lib64/libc.so.6

#1 0x00007f10588c6cad in _L_lock_2164 () from /lib64/libc.so.6

#2 0x00007f10588c6a67 in __tz_convert () from /lib64/libc.so.6

#3 0x00007f105890da5d in __vsyslog_chk () from /lib64/libc.so.6

#4 0x00007f105889948e in __libc_message () from /lib64/libc.so.6

#5 0x00007f105889ee66 in malloc_printerr () from /lib64/libc.so.6

#6 0x00007f10588c6909 in tzset_internal () from /lib64/libc.so.6

#7 0x00007f10588c6a89 in __tz_convert () from /lib64/libc.so.6

#8 0x00000000004c0917 in shift_fd (lvl=1, fmt=0x55e308 "[%s][%d][%s]: [server] recv SIGSEGV.pid:%d!\n") at ../src/log_xx.cpp:95

#9 write_log (lvl=1, fmt=0x55e308 "[%s][%d][%s]: [server] recv SIGSEGV.pid:%d!\n") at ../src/log_xx.cpp:138


上面这个问题导致是因为进程抛出了SEGV信号之后,在处理信号的方法中使用了非线程安全的localtime,而该方法中会枷锁。

相关内容

热门资讯

特朗普:俄乌将实行为期3天的停... △特朗普(资料图)当地时间5月8日,美国总统特朗普在其社交媒体“真实社交”发文表示,在俄罗斯与乌克兰...
《星球大战》男主角发“特朗普躺... 据英国广播公司(BBC)5月8日报道,《星球大战》演员马克·哈米尔在社交平台发布一张AI生成的图片,...
产业园区招商政府委托媒介选型指... 导语:产业园区招商需兼顾资源整合效率与项目落地精准度,尤其在互联网招商模式下,平台流量、技术团队与资...
“无废城市”建设 | 为新材料... 4月26日,在常山生态工业园区的利安隆科润(浙江)新材料有限公司实验室里,企业品控部负责人、科技副总...
既能防晒又能听歌,还自带AI小... 春夏出门运动,你是不是也常常纠结:到底是戴帽子防晒,还是戴耳机听歌?两个都戴上,耳朵被压得生疼,帽檐...
伊朗警告过往船只远离美军舰艇:... 据美国有线电视新闻网(CNN)5月8日报道,一段录音显示,美伊在霍尔木兹海峡发生冲突后,伊朗革命卫队...
事关汉坦病毒,大西洋小岛牵动多... 5月6日,荷兰“洪迪厄斯”号邮轮停留在佛得角首都普拉亚的近海海域。新华社发(埃尔顿·蒙泰罗摄)发生汉...
上海尼为取得供栈收栈机专利,实... 国家知识产权局信息显示,上海尼为智能科技有限公司取得一项名为“一种供栈收栈机”的专利,授权公告号CN...
Win11终于不卡了!让CPU... 快科技5月8日消息,微软正针对Windows11系统用户体验进行深度优化,内部代号为Project ...
2026户外出行与通勤旗舰手机... 对于经常需要通勤、热爱户外活动的朋友来说,选择一款合适的手机至关重要。它需要满足单手操作的便捷性、坚...