Apache2 mod_jk LoadBalancer + Tomcat7 - 性能调优

Apache2 mod_jk LoadBalancer + Tomcat7 - 性能调优

我们的系统负载非常高,每天大约有 850 万用户。实际上,我们有 8 个 Apache2 负载均衡器(Ubuntu 10.04.3 LTS x64 通过 DNS-RoundRobin),它们通过 AJP1.3 将流量发送到 20 个工作器。在这些工作器上,我们自己编写的 Grails-Web 应用程序运行在 tomcat7 + java7 服务器(Ubuntu 11.10 x64)上。该应用程序正在记录到本地 postgresql 9.1 数据库。所有服务器都托管在德国 Hetzner,配有 Intel® Core™ i7-2600、16GB RAM 和 2x3TB Raid 1 HDD。

在黄金时段(下午 6 点到中午 12 点),我们有时会遇到严重的性能瓶颈,但问题不是硬件。CPU 最大使用率为 50%,最大负载为 2.5,RAM 最多只使用了 3-4GB。但我不知道问题出在哪里。

以下是我的 server.xml 的摘录:

<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector  port="8009"
            protocol="AJP/1.3"
            maxThreads="5000"
            minSpareThreads="25"
            maxSpareThreads="75"
            acceptCount="200"
            redirectPort="8443"
            connectionTimeout="60000"
            debug="4"
/>

在高峰期,Tomcats 每秒可处理 400-450 次访问。有人能提供一些如何优化 Apache + mod_jk + tomcat7 性能的提示吗?

答案1

我猜是垃圾收集——它会导致负载过大的 Java 服务器出现瓶颈。您是否研究过垃圾收集日志以了解所涉及的延迟?您的垃圾收集设置是什么

相关内容