tomcat 下部署的应用出现ava.lang.OutOfMemoryError: unable to create new native thread ,解决
第一:使用tomcat 线程池。请看
tomcat
高并发 这篇文章解决。
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="150" minSpareThreads="4"/>
<Connector executor="tomcatThreadPool" port="80" protocol="HTTP/1.1" maxThreads="2000" minSpareThreads="100" maxSpareThreads="300" connectionTimeout="20000" redirectPort="443"URIEncoding="UTF-8" />
优化请看 tomcat
高并发这篇文章解决。
第二:加大jvm 允许存在的最大线程数
请参考
java 最大線程數理解 .
我的解決方案是:
-Xms512m -Xmx1024m -Xss128k
第三:使用64位的jre ,tomcat,操作系統
再32位的操作系統中,單個jvm 進程中可用最大內存爲2G。那麼除去permSize,
測試 使用jre 32 位 ,jvm 參數爲-Xms512m -Xmx1024m -Xss128k 能創建 1000 左右的線程。
再64位的操作系統中,物理內存達到8G,使用jre 64位,jvm 參數爲:-Xms512m -Xmx1024m
-Xss128k,線程數可高達上萬。
第四:使用apache+tomcat 做集群。
版权声明:本文为博主原创文章,未经博主允许不得转载。
页:
[1]