當系統運行緩慢或記憶體使用率異常升高時,快速定位佔用資源的進程與執行緒至關重要。本文整理一組實用的指令組合,幫助管理員深入分析進程行為、執行緒呼叫與系統呼叫耗時。

| 編號 | 用途 | 指令範例 | 說明 |
|---|---|---|---|
| 1 | 查看進程執行緒 | ps -eLf | egrep 'gateserver|UID' |
列出所有執行緒,篩選特定進程名或標題列 |
| 2 | 追蹤執行緒系統呼叫 | strace -p 15530 |
即時顯示 PID 15530 的系統呼叫細節 |
| 3 | 統計系統呼叫 CPU 耗時 | strace -p 16334 -c |
彙總各系統呼叫次數、錯誤數與耗時 |
| 4 | 輸出追蹤結果到檔案 | strace -p 15530 -o out.file |
方便後續離線分析 |
| 5 | 僅顯示特定函數呼叫 | strace -p 5314 -f -F -e recv |
只追蹤 recv 網路接收呼叫,-f 追蹤子進程 |
| 6 | GDB 除錯執行緒 | gdb -p pid |
附加到運行中進程進行原始碼級除錯 |
| 7 | 查看進程開啟的檔案描述符 | lsof -p pid |
列出該進程持有的所有開啟檔案、Socket 等 |
top 或 htop 找出高佔用記憶體/CPU 的 PID。strace -c 能快速定位「系統呼叫層面」的效能瓶頸(如頻繁 read/write、poll 等)。valgrind 或 /proc//smaps 使用。掌握這組指令組合,即可在 Linux 環境下高效診斷進程資源佔用問題。
Fedora 18 DNSenum IP 顯示亂碼修正:Perl 腳本 $rr->{address} 改為 $rr->address
Linux 升級 MySQL 後報錯 conflicts with file 解決方案:移除舊 libs 衝突包
Linux tail -f 報錯「No space left on device」實為 inotify 監控上限不足
CentOS 安裝 VNC 後報錯 "Could not start Xvnc" 解決方案
Linux whiptail 互動式對話框完整開發指南:從選單、輸入框到進度條