JavaJVM设置对性能的影响
来源:优易学  2011-1-5 9:19:51   【优易学:中国教育考试门户网】   资料下载   IT书店
  一台后端server,OS为Slackware 8.1,装了tomcat 4.1.30,近期在繁忙时期经常会死机,死状就是"java.lang.OutOfMemoryError: unable to create new native thread".是tomcat创建不了新的线程来应答请求了。于是我搭了一个环境专门来测试这个问题。内存为2G,CPU为四颗2.8G,tomcat 4.1.30,写一个最简单的JSP页面,如下:
  代码
  <%
  try
  {
  Thread.sleep(30000);
  out.println("fuck");
  } catch (InterruptedException e) {
  e.printStackTrace();
  } %>
  然后开Jmetor来压,同时开jconsole来监测tomcat的情况,并不断调整XMX,XMS,XSS这三个参数,得出下表:
  XMX XMS XSS down时的tomcat thread数
  500M 500M 128K 642
  800M 800M 64K 485
  1024M 1024M 64K 374
  1024M 1024M 128K 374
  1024M 1024M 512K 371
  根据该表,可以看出,随XMX,即是分配给JVM的内存数越大,tomcat所能开的thread数就越小,而Xss这个参数几乎不影响任何测试结果。我猜想tomcat开线程是使用linux的内存,而不是JVM的内存。当分配给JVM的内存越大,操作系统所能用于分配的内存就越小,于是所能开的线程数就越小。

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训