Java
為什麼有這麼多程序在執行?
我使用 Ubuntu 8.04、Nginx、Passenger、Mysql、RVM 在 VPS 上託管幾個 Rails 應用程序,所以所有常見的嫌疑人。
在過去的幾天裡,這是我第一次真正不得不調試問題並查看正在執行的程序。我可以使用passenger-status 和passenger-memory-stats 來解決這個問題,但是我對正在執行的程序數量感到非常困惑並且無法完全弄清楚。
看一下這個截圖,例如:http : //screencast.com/t/wUMrmy5iQPQi(取自 htop)
它顯示了許多 Hudson 程序(Hudson 是我在該機器上執行的 CI 伺服器)。
我的問題是:
- 為什麼有 34 個?
- 它們都是獨立的過程嗎?
- 是否應該有 34 個或者其中一些是陳舊的、孤立的程序,在重新啟動時沒有正確關閉並且我應該殺死它們?
您正在查看執行緒。在 htop 中,按 F2 選擇選項,然後選擇“顯示選項”。選中“隱藏使用者執行緒”框和/或嘗試 htop 中的一些選項,例如“以不同顏色顯示執行緒”
您可能還想打開 PPID(父程序 ID)列。然後你就可以知道所有執行緒都可能列出同一個父程序。
Linux
ps
會將單獨的執行緒顯示為程序。我認為在這方面沒有什麼可擔心的。嘗試使用
-L
標誌以查看執行緒(輕量級程序)資訊。