使用strace定位死循环

本文通过top命令发现pworker进程的CPU占用率接近100%,进一步使用strace命令排查,发现epoll_wait参数错误导致的死循环是问题根源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先通过top命令发现pworker进程的CPU占用率接近100%,如下:

 # top
Run Time:  0 days, 0 hours and 59 minutes
24U, 25S, 49I; mem: T:64040 F:61472 A:61159 C:120 SC:0 ST:0 SF:0
     pworker      399      R      99.9     0.0

 # 

之后,通过strace命令查看一下其在执行什么系统操作:

/ # ./strace -p 399
./strace: Process 399 attached
epoll_wait(-1, 0x4714f00, 0, 5000)      = -1 EINVAL (Invalid argument)
alarm(30)                               = 0
alarm(0)                                = 30
epoll_wait(-1, 0x4714f00, 0, 5000)      = -1 EINVAL (Invalid argument)
alarm(30)                               = 0
alarm(0)                                = 30
epoll_wait(-1, 0x4714f00, 0, 5000)      = -1 EINVAL (Invalid argument)
alarm(30)                               = 0
alarm(0)                                = 30
epoll_wait(-1, 0x4714f00, 0, 5000)      = -1 EINVAL (Invalid argument)
alarm(30)                               = 0

可见,epoll_wait的参数错误引起了死循环。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值