|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
多谢指点,其实我对.net和ruby也不是很了解,对与java也只是刚起步的阶段,只是在学习中有了点想法就写出来了,现在俺本科还没毕业,所以对大型项目基本上也没有什么经验。
一台后端server,OS为Slackware8.1,装了tomcat4.1.30,近期在忙碌时代常常会逝世机,逝世状就是"java.lang.OutOfMemoryError:unabletocreatenewnativethread".是tomcat创立不了新的线程来应对哀求了。因而我搭了一个情况专门来测试这个成绩。内存为2G,CPU为四颗2.8G,tomcat4.1.30,写一个最复杂的JSP页面,以下:
代码
<%
try
{
Thread.sleep(30000);
out.println("fuck");
}catch(InterruptedExceptione){
e.printStackTrace();
}%>
然后开Jmetor来压,同时开jconsole来监测tomcat的情形,其实不断调剂XMX,XMS,XSS这三个参数,得出下表:
XMXXMSXSSdown时的tomcatthread数
500M500M128K642
800M800M64K485
1024M1024M64K374
1024M1024M128K374
1024M1024M512K371
依据该表,能够看出,随XMX,便是分派给JVM的内存数越年夜,tomcat所能开的thread数就越小,而Xss这个参数几近不影响任何测试了局。我料想tomcat开线程是利用linux的内存,而不是JVM的内存。当分派给JVM的内存越年夜,操纵体系所能用于分派的内存就越小,因而所能开的线程数就越小。
人人有甚么办理计划吗?岂非人人都没遇过这个成绩?我的假想是大概linux初始每一个历程(也就是tomcat开的线程)有一个初始巨细,这应当是一个内核参数来的,应当把它调小就能够了,但我不晓得如何往调。
微软什么都提供了。你可以试想一下,如果你是新手,你是希望你点一下按钮程序就能运行那,还是想自己一点一点的组织结构,然后打包发部,调错再打包...... |
|