Apache Tomcat JVM Headsize Redhat 5 64位32内存2四核至强性能问题
请帮我调整我的服务器 当一次连接数超过500时,我的httpd只是冻结并停止响应。Apache Tomcat JVM Headsize Redhat 5 64位32内存2四核至强性能问题
我有相同的结构,因为2008和现在现在添加了一些RAM I有32 GB每个两个服务器
第一个具有安装RHEL 5 64位2.6.18-53.1.4.el5xen 的它提供的JNLP到谁连接到第二个服务器
的Apache 2.2.3的httpd.conf
<IfModule prefork.c>
StartServers 8
MinSpareServers 10
MaxSpareServers 75
ServerLimit 1100
MaxClients 1100
MaxRequestsPerChild 4000
</IfModule>
<IfModule worker.c>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
的Java 1.6.0_27处理后,用下面的参数客户
java -server -Xmx1280M -XX:MaxPermSize=256M -Djava.awt.headless=true ...
的Tomcat的server.xml用以下参数
... connectionTimeout="12000" maxSpareThreads="250" protocol="AJP/1.3"
maxHttpHeaderSize="8192" disableUploadTimeout="true" minSpareThreads="25"
useBodyEncodingForURI="true" maxThreads="500" acceptCount="100"
enableLookups="false" ...
第二服务器只有JVM java程序HW同上 冻结当用户数量连接超过600 我已经改变XMX从4000米到26克昨天希望这将允许在这个过程中使用更多的RAM。但是没有看到它在顶部使用了4g以上。
java -server -Xmx26g -Djava.awt.headless=true -Dfile.encoding=UTF-8 -jar
top - 01:34:10 up 252 days, 8:02, 1 user, load average: 0.00, 0.02, 0.00
Tasks: 127 total, 1 running, 126 sleeping, 0 stopped, 0 zombie
Cpu(s): 1.8%us, 0.2%sy, 0.0%ni, 97.7%id, 0.2%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 37049860k total, 3225916k used, 33823944k free, 331836k buffers
Swap: 10223608k total, 0k used, 10223608k free, 2409808k cached
top - 03:57:04 up 252 days, 8:02, 1 user, load average: 0.01, 0.02, 0.00
Tasks: 145 total, 1 running, 144 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni, 99.8%id, 0.2%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 37108368k total, 36117600k used, 990768k free, 218364k buffers
Swap: 2031608k total, 120k used, 2031488k free, 33518948k cached
请帮我解决这个问题。我打算升级所有这些,但不知道如果我的Java程序将与新版本的rhel apache tomcat和jvm一起工作。
这很可能是你在Tomcat的侧
maxThreads="500"
在server.xml
问题... ...将其抬起,这将允许更多的并发连接。
maxThreads
请求处理线程的最大数量由该连接器,其因此确定可处理并发请求的最大数目来创建。如果未指定,则将此属性设置为200.如果执行程序与此连接程序关联,则该属性将被忽略,因为连接程序将使用执行程序而不是内部线程池执行任务。
From Apache Tomcat documentation
而且,这部分解释了为什么600个客户端可以连接:
acceptCount="100"
这使得其他100个客户在队列中等待,直到担任
acceptCount
所有可能的请求处理线程正在使用时传入连接请求的最大队列长度。队列满时收到的任何请求都将被拒绝。默认值是100。
注:为了能够验证内存的情况下,您可以连接到Tomcat使用JMX(JConsole的,jvisualvm,等...),而且,你可以查了很多实际的设置,如Monitoring Tomcat FAQ中所述。
当系统无响应时,JVM会执行什么操作?底层操作系统有什么作用? –
JVM 64位?另外,1.6有点老,我会担心安全问题... – ppeterka
JVM工作,操作系统非常慢,第二台服务器作为一个Web会议。 bouth服务器运行系统是可以的。 – Olzh