系統記憶體耗盡時,需快速定位佔用大戶與其行為。本文整理 6 種進階分析指令:列出執行緒、系統呼叫追蹤、CPU 時間統計、特定函數過濾、GDB 附著調試、檔案描述符檢視。
ps -eLf | egrep 'gateserver|UID'
# -L 顯示 LWP (輕量進程/執行緒) ID
strace -p 15530
# 即時顯示進程 15530 的所有 syscall
strace -p 16334 -c
# 彙總各 syscall 次數、錯誤、耗時百分比
strace -p 15530 -o out.file
# 方便事後分析大量輸出
strace -p 5314 -f -F -e recv
# -f 追蹤子進程, -F 追蹤 vfork, -e recv 只看 recv 相關
gdb -p
# 進入 gdb 後可用 info threads, thread apply all bt 等指令
lsof -p
# 顯示檔案、網路連線、管道等所有 FD
top/htop 找出高記憶體/CPU 進程 PID。ps -eLf 確認執行緒數是否異常暴增。strace -c 看是否卡在特定 syscall (如 futex、poll)。lsof -p 檢查洩漏的檔案/連線描述符。gdb -p 取得堆疊回溯定位程式碼行號。