2016-03-14 44 views
2

通過永遠運行風帆或直接調用它node app.js --prod,根據htop我有一個4個子進程,看起來像它下面的克隆。sails.js多個子進程,這些是什麼? Ubuntu

enter image description here

如果我離開了--prod說法,我得到咕嚕過程的等量。 正如您所看到的,它們都具有相同的內存使用量,不同的PID和不同的TIME +讀數。

我很確定它的風格不是自動集羣,還是它?這是一個單一的核心機器(虛擬),所以我不知道這些進程是什麼,或者它是htop中的錯誤?

根據該問題htop-showing-multiple-java-processes-with-different-pids?rq=1

HTOP示出了線程不同的處理,但並不節點單線程?如果那些線程來自哪裏?

回答

1

您使用htop看到的線程是userland線程(用戶線程),但是當您在集羣模式下運行應用程序(例如4個實例)時,它會生成內核線程。 more on user threads

當你隱藏用戶級線程

那麼無論你看到的是內核thread.while在集羣模式下運行的應用程序,將創建一個application.And的多個內核線程爲每個應用程序的內核線程有與之相關的幾個用戶級線程。

(用於HTOP可以隱藏通過F2和顯示選項,用戶級線程)

請參閱屏幕截圖進行說明。

four instances of my app in cluster mode since number of cores==4 enter image description here

ps commands showing kernel threads only

htop showing kernel threads only enter image description here

htop showing kernel threads along with userland threads enter image description here

在上一張截圖中,您會看到一些內核和用戶空間的線程,但還有更多。 我的意思是每個內核線程都有一些用戶空間的線程與之相關聯。

+0

那麼,那些用戶線程的node.js線程池(我知道節點事件循環是單線程的,但它需要線程幕後的一切)?或者那些是由框架創建的? –

+1

是啊... 這些是節點應用程序用於維護它的事件回調以及其他所有東西的線程...默認情況下,每個應用程序都有它自己的幾個用戶區線程,它們僅由應用程序創建和控制。 – vkstack

+0

哦,我明白了,謝謝 –