1. 程式人生 > >關於“java.lang.OutOfMemoryError : unable to create new native Thread”的報錯問題

關於“java.lang.OutOfMemoryError : unable to create new native Thread”的報錯問題

ulimit命令 既然 tps spa 好的 tiger src targe new

轉自:https://www.cnblogs.com/flying-tiger/p/5956926.html

java.lang.OutOfMemoryError : unable to create new native Thread.

具體截圖如下:

技術分享圖片

在查看日誌文件的時候,也有以下出錯信息:

Error occurred during initialization of VM...

經過百度,找到方法:

既然報“OutOfMemoryError”,而且還是“ unable to create new native Thread.”,那麽很可能是程序申請的Thread數超過了系統能夠承載的限制。但是作為一臺性能還不錯的服務器,沒理由系統資源不夠用啊?

好的,那我們用ulimit命令查看一下系統的對進程資源的控制:

ulimit -a  

輸出如下:

技術分享圖片

似乎是max user processes數不足?
還是使用ulimit 命令,把max user processes放大一倍試試:

ulimit -u 2048  (使用postgres用戶運行該命令)

得到:

技術分享圖片

(這裏值得說一下,因為我這裏只是想臨時改變當前shell的設置,要是想永久設置要修改/etc/security/limits.conf文件,請自行百度)。

修改完之後再運行:

技術分享圖片

關於“java.lang.OutOfMemoryError : unable to create new native Thread”的報錯問題