当我的 httpd 一次连接数超过 500 时冻结并停止响应,请帮助我调整我的服务器。
自 2008 年以来我一直使用相同的配置,现在添加了一些 RAM,现在我在两台服务器上各有 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 从 4000m 更改为 26g,希望这将允许为该进程使用更多 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 一起使用。