国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
JVM 系列二:java.lang.OutOfMemoryError: unable to create new native thread

問(wèn)題描述

Java程序運(yùn)行過(guò)程中拋出java.lang.OutOfMemoryError: unable to create new native thread,如下所示:

  1. java.lang.OutOfMemoryError: unable to create new native thread  
  2.     at java.lang.Thread.start0(Native Method)  
  3.     at java.lang.Thread.start(Thread.java:691)  
  4.     at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:949)  
  5.     at java.util.concurrent.ThreadPoolExecutor.processWorkerExit(ThreadPoolExecutor.java:1017)  
  6.     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1163)  
  7.     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)  
  8.     at java.lang.Thread.run(Thread.java:722)  

  1. Caused by: java.lang.OutOfMemoryError  
  2.     at java.util.zip.ZipFile.open(Native Method)  
  3.     at java.util.zip.ZipFile.<init>(ZipFile.java:214)  
  4.     at java.util.zip.ZipFile.<init>(ZipFile.java:144)  
  5.     at java.util.jar.JarFile.<init>(JarFile.java:153)  
  6.     at java.util.jar.JarFile.<init>(JarFile.java:117)  

從JVM層面去解決

減小thread stack的大小

JVM默認(rèn)thread stack的大小為1024,這樣當(dāng)線(xiàn)程多時(shí)導(dǎo)致Native virtual memory被耗盡,實(shí)際上當(dāng)thread stack的大小為128K 或 256K時(shí)是足夠的,所以我們?nèi)绻鞔_指定thread stack為128K 或 256K即可,具體使用-Xss,例如在JVM啟動(dòng)的JVM_OPT中添加如下配置

  1. -Xss128k  

減小heap或permgen初始分配的大小

如果JVM啟動(dòng)的JVM_OPT中有如下配置

  1. -Xms1303m -Xmx1303m -XX:PermSize=256m -XX:MaxPermSize=256m  
我們可以刪除或減小初始化最小值的配置,如下

  1. -Xms256m -Xmx1303m -XX:PermSize=64m -XX:MaxPermSize=256m  

  1. -Xmx1303m -XX:MaxPermSize=256m  

升級(jí)JVM到最新的版本

最新版本的JVM一般在內(nèi)存優(yōu)化方面做的更好,升級(jí)JVM到最新的版本可能會(huì)緩解測(cè)問(wèn)題

從操作系統(tǒng)層面去解決

使用64位操作系統(tǒng)

如果使用32位操作系統(tǒng)遇到unable to create new native thread,建議使用64位操作系統(tǒng)

增大OS對(duì)線(xiàn)程的限制

在Linux操作系統(tǒng)設(shè)定nofile和nproc,具體編輯/etc/security/limits.conf添加如下:

  1. soft    nofile          2048  
  2. hard    nofile          8192  

  1. soft    nproc           2048  
  2. hard    nproc           8192  

如果使用Red Hat Enterprise Linux 6,編輯/etc/security/limits.d/90-nproc.conf,添加如下配置:

  1. # cat /etc/security/limits.d/90-nproc.conf  
  2. *          soft    nproc     1024  
  3. root       soft    nproc     unlimited  
  4.   
  5. user       -       nproc     2048  
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
剝下“java.lang.OutOfMemoryError: unable to create new native thread”的外衣
HP_UNIX Java OutOfMemoryError unable to create new native thread
常見(jiàn)的 OOM 異常分析(硬核干貨)
解決 - java.lang.OutOfMemoryError: unable to create new native thread
jvm內(nèi)存調(diào)優(yōu)經(jīng)驗(yàn)總結(jié)
深入理解OutOfMemoryError
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服