国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

CPU 100% 怎么排查呢

ieliwb

strace -tt -p 634881 后控制臺不停的epoll_pwait 下面的內(nèi)容。

02:52:18.433195 epoll_pwait(7, [{events=EPOLLIN|EPOLLERR|EPOLLHUP, data={u32=17, u64=17}}, {events=EPOLLIN|EPOLLERR|EPOLLHUP, data={u32=11, u64=11}}, {events=EPOLLIN|EPOLLERR|EPOLLHUP, data={u32=14, u64=14}}, {events=EPOLLIN|EPOLLERR|EPOLLHUP, data={u32=15, u64=15}}, {events=EPOLLIN|EPOLLERR|EPOLLHUP, data={u32=16, u64=16}}], 32, 697, NULL, 8) = 5
02:52:18.433265 epoll_pwait(7, [{events=EPOLLIN|EPOLLERR|EPOLLHUP, data={u32=17, u64=17}}, {events=EPOLLIN|EPOLLERR|EPOLLHUP, data={u32=11, u64=11}}, {events=EPOLLIN|EPOLLERR|EPOLLHUP, data={u32=14, u64=14}}, {events=EPOLLIN|EPOLLERR|EPOLLHUP, data={u32=15, u64=15}}, {events=EPOLLIN|EPOLLERR|EPOLLHUP, data={u32=16, u64=16}}], 32, 697, NULL, 8) = 5

應(yīng)該怎么排查呢,謝謝

我按照http://www.wtbis.cn/doc/workerman/debug/busy-process.html 排查了
感覺像代碼里無限死循環(huán)問題。用的官方打包好的php,zbacktrace 沒有任何東西,咋搞呢

143 1 1
1個回答

jack10082009

CPU 100% 排查指南

從你提供的信息來看,進程(pid 634881)處于高CPU使用狀態(tài),且strace顯示它在頻繁調(diào)用epoll_pwait。以下是詳細的排查步驟:
確認問題進程類型

首先確認這是否是一個Workerman進程:
ps aux | grep 634881

使用top命令確認CPU使用情況

top -H -p 634881

查看哪個線程占用了高CPU
使用perf工具進行性能分析

perf top -p 634881

這會顯示進程中最耗CPU的函數(shù)調(diào)用
使用gdb進行深入分析

gdb -p 634881

在gdb中執(zhí)行:

查看調(diào)用棧
針對Workerman的特殊排查

如果確認是Workerman進程:
檢查業(yè)務(wù)代碼中是否有死循環(huán)

檢查定時器是否設(shè)置不當(Timer::add)

檢查是否有大量客戶端連接但無數(shù)據(jù)交互

檢查文件描述符

ls -l /proc/634881/fd

查看是否有異常的文件描述符
檢查網(wǎng)絡(luò)連接狀態(tài)

netstat -anp | grep 634881

查看進程的網(wǎng)絡(luò)連接情況
如果懷疑是PHP代碼問題

可以嘗試:
kill -SIGUSR2 634881

然后查看Workerman的日志,它會輸出當前執(zhí)行的文件和行號
其他工具

使用strace -c統(tǒng)計系統(tǒng)調(diào)用

使用ltrace跟蹤庫函數(shù)調(diào)用

針對你的具體情況

從strace輸出看,進程在頻繁處理epoll事件,但沒有顯示后續(xù)的處理邏輯。可能的原因:
事件循環(huán)處理邏輯有問題,導(dǎo)致不斷觸發(fā)相同事件

有大量空閑連接但Workerman仍在不斷檢查

某個回調(diào)函數(shù)執(zhí)行時間過長

建議先使用perf或gdb獲取更詳細的調(diào)用棧信息,確定是卡在哪個具體函數(shù)上。

  • 暫無評論
??