xiaowei8782088 发表于 2015-11-14 12:12:29

tomcat 下部署的应用出现ava.lang.OutOfMemoryError: unable to create new native thread ,解决

  第一:使用tomcat 线程池。
  请看


tomcat
高并发 这篇文章解决。
  
   <Executor name=&quot;tomcatThreadPool&quot; namePrefix=&quot;catalina-exec-&quot;
maxThreads=&quot;150&quot; minSpareThreads=&quot;4&quot;/>
<Connector executor=&quot;tomcatThreadPool&quot; port=&quot;80&quot; protocol=&quot;HTTP/1.1&quot;   maxThreads=&quot;2000&quot;   minSpareThreads=&quot;100&quot;       maxSpareThreads=&quot;300&quot;    connectionTimeout=&quot;20000&quot;    redirectPort=&quot;443&quot;URIEncoding=&quot;UTF-8&quot; />

优化请看 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&#43;tomcat 做集群。
  


  



版权声明:本文为博主原创文章,未经博主允许不得转载。
页: [1]
查看完整版本: tomcat 下部署的应用出现ava.lang.OutOfMemoryError: unable to create new native thread ,解决