我们有一个非常高负载的系统,每天大约有850万用户。 其实我们有8个Apache2 Loadbalancer(通过DNS-RoundRobin的Ubuntu 10.04.3 LTS x64)通过AJP1.3发送stream量到20个工人。 在这个工作者上,我们自己编写的Grails-Web应用程序运行在tomcat7 + java7服务器(Ubuntu 11.10 x64)上。 应用程序正在logging到本地postgresql 9.1数据库。 所有服务器都在德国Hetzner的宿舍上,有一个带有16GB内存的英特尔®酷睿™i7-2600和一个2x3TB Raid 1硬盘。
在黄金时间(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" />
在高峰期,雄猫处理每秒400-450次访问。 有没有人提示如何优化Apache + mod_jk + tomcat7的性能?
垃圾收集是我的猜测 – 它可能会导致加载的Java服务器的瓶颈。 你有没有研究你的垃圾收集日志,以了解所涉及的延误? 什么是垃圾收集设置