1. 程式人生 > 實用技巧 >Cannot create GC thread. Out of system resources.

Cannot create GC thread. Out of system resources.

錯誤資訊:

Cannot create GC thread. Out of system resources.

問題背景:

使用普通使用者部署專案報這樣的錯誤資訊。

錯誤原因:

Linux是有檔案控制代碼限制的,而且Linux預設不是很高,一般都是1024,生產伺服器用其實很容易就達到這個數量。
也就是說普通使用者有軟硬體的限制。這不是授權就可以解除的。

解決辦法:

cd /etc/security/limits.d

vim 20-nproc.conf

修改如下內容:

檔案原內容:

*          soft    nproc     4096
root       soft    nproc     unlimited

檔案修改後的內容:

*          soft    nproc     unlimited
root       soft    nproc     unlimited

最終使用普通使用者部署就不會再出現這樣的錯誤了。

另外之所以做這樣的限制是為了避免前端請求,後端處理時,一些惡意的請求導致對應的程序會增加,從而佔用記憶體。如果不做一定的限制,可能會使得整個伺服器宕機。這也就是為什麼前端介面要鑑權,後臺要有一個機制來識別哪些是惡意的請求。之前一直覺得微服務元件Sentinel沒用,但後來發現其實它還是有用的,至少它可以在一定程度上起到一個識別是否是正常請求的作用,對於哪些頻繁的惡意請求,Sentinel直接轉向其它提示資訊,並不會走到後端真正的處理邏輯從而避免不必要的資源消耗