MQ java.lang.OutOfMemoryError: unable to create new native thread
生活随笔
收集整理的這篇文章主要介紹了
MQ java.lang.OutOfMemoryError: unable to create new native thread
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 問題現象
- 2. 分析定位
- 3. 解決方案
- 4. 結果驗證
- 5. 總結
1. 問題現象
java.lang.OutOfMemoryError: unable to create new native thread
2. 分析定位
生產上所有程序都是在jboss賬戶下運行,于是查看該賬戶下所有的線程數總和為950,也即是說,隨時都可能會超過1024,導致內存溢出。查看進程當前運行的線程數命令為:
pstree -p 3660 | wc -l如果出現:-bash: pstree: 未找到命令
在線安裝: yum install psmisc
原因找到,操作系統對運行程序的賬戶有最大線程數限制。
3. 解決方案
vim /etc/security/limits.d/90-nproc.conf
打開后發現除了root,其他賬戶都限制在1024個。
于是增加一條:
為什么設置為20000,因為測試后發現,在運行到35000左右,系統就報內存溢出了,操作系統所有命令都不能使用,因此將程序最大線程數限制在20000。
4. 結果驗證
修改后再沒出現內存溢出錯誤。問題解決。
5. 總結
經過總結,在遇到問題后,不能盲目的到處修改,首先要做的就是重現問題,順藤摸瓜,逐步的找出根本原因。
總結
以上是生活随笔為你收集整理的MQ java.lang.OutOfMemoryError: unable to create new native thread的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Vue项目启动后Error: Canno
- 下一篇: linux:根据关键字或日期查找日志