提高Web应用程序的性能
问题描述:
我的Web应用程序分解WAR
由Apache
(静态内容)和Tomcat
(动态内容)通过mod_jk
托管。可选地,这个系统有一个ActiveMQ组件,但它目前没有被使用。提高Web应用程序的性能
据我所知,每个HTTP请求都会碰到Apache。如果它是动态内容请求,Apache将通过mod_jk将请求转发给Tomcat。为了完成这个请求,Tomcat将启动一个新线程来完成这项工作。
我在6核12 GB RAM机器上运行应用程序。
除了使用ActiveMQ组件,我该如何提高系统性能?另外,如果我误解了Apache和Tomcat的通信方式,请纠正我。
答
while (unhappyWithSitePerformance) {
executeLoadTest();
identifyBiggestBottleneck(); // e.g. what breaks first
fixIdentifiedBottleneck();
}
没有空白的银色子弹提供。您应该确保您的负载测试模拟真实的用户行为并定义您希望服务器在给定的应答时间内处理的(虚拟)用户数量。然后调整您的服务器,直到达到目标。
常用参数以寻找是
- 存储器消耗
- CPU消耗(例如一定的算法)
- I/O饱和 - 例如与数据库通信,使网络适配器饱和的一般HTTP流量
- 数据库或后端应答时间 - 例如,有时你必须调整后端,而不是网络服务器本身。
你有问题吗?或者你只是想寻找乐趣进行优化? – 2013-04-07 15:35:39
有问题。应用程序当前加载速度太慢 – 2013-04-08 12:25:22
有这个猖獗的问题,人们说我的应用程序很慢....修复它。你需要具体。就像:在提供10k请求时它的速度很慢,平均请求时间是600ms,我们希望它在100ms,我们已经尝试了这些细节。与任何持久化库/使用的图层相比,Tomcat和apache可能与性能无关。而不是负载或基准你给出了机器的具体细节,这意味着插孔蹲。 – 2013-04-08 12:35:10