当前位置:编程学习 > JAVA >>

工作、非工作时间web并发差距10倍,如何解决,请资深高手指点。

正在给客户开发一个供员工访问的平台,基于Java、jsp技术,使用apache加tomcat集群,目前配置了3个tomcat,经过在用户网络测试,测试情况如下,请各位资深高手协助指点。
 
下边是在1个apache加3个tomcat集群的测试结果:
 在工作时间的网络环境下:
 20个并发登录平均响应时间在4秒之内,50个并发登录平均响应时间在7秒之内,超过75个并发登录响应时间超过9秒,不可接受;
 在非工作时间的网络环境下:
 150个并发登录平均响应时间在3.3秒之内,300个并发登录平均响应时间在4.6秒之内,500个并发登录平均响应时间在7秒之内,超过700个并发登录响应时间超过9秒,不可接受;
 
为了验证1个apache加1个tomcat集群可以支持的并发数,分别作了以下测试:
 在工作时间的网络环境下:
 30个并发登录平均响应时间在5.1秒之内,达到50个并发登录响应时间超过8秒,不可接受;
 在非工作时间的网络环境下:
 200个并发登录平均响应时间在4.2秒之内,400个并发登录平均响应时间在6.23秒之内,尚可接受。
 
通过以上测试,在用户工作和非工作时间的网络情况下,平台支持的并发差距达10倍。对于web应用,受网络环境的影响超出想象,也就是说理想网络环境和真实环境下,并发访问支持差距很大。现在用户要求给出解决方案,请各位高手指点。
 
个人初步的想法如下:
 1. 我们的程序经过优化,包括精简代码、去掉不必要的资源引用、去掉不必要的逻辑、压缩图片等,程序优化的可能性较小;
 2. 用户端的网络也不是我们想说优化就能优化的,如何优化,因为用户的网络较复杂,我们也不是这方面的专家,能提出建设性的优化方案可能性较小;
 3. 目前似乎只能继续增加tomcat,增加到5个或更多,但是不知能否解决问题。
 
抛砖引玉,希望能和各位资深同行探讨,欢迎批评指正,给出建议,谢谢!  --------------------编程问答-------------------- 据我多年的开发经验我觉得在关系型数据库查询这里出现瓶颈。
--------------------编程问答-------------------- 项目中有没有增加缓存 --------------------编程问答--------------------
引用 2 楼 liuqing9988 的回复:
项目中有没有增加缓存


麻烦给出详细的说明,谢谢,我们对apache、tomcat的性能参数均都进行了调整 --------------------编程问答--------------------
引用 1 楼 zhuchao_ko 的回复:
据我多年的开发经验我觉得在关系型数据库查询这里出现瓶颈。


登录分为这么几个步骤:
 1. 用户输入用户民和密码,点击登录,输入用户民和密码不在测试事务内
 2. 加载登录后的主页面
 3. 获取一些登录信息等(异步)
 4. 查询db获取其它信息(异步);
 
从目前测试下来,‘加载登录后的主页面’是耗时最多的,但是我们已经对这个做了优化,并没有看出数据库访问的问题。 --------------------编程问答--------------------
引用 4 楼 dragonrong 的回复:
引用 1 楼 zhuchao_ko 的回复:据我多年的开发经验我觉得在关系型数据库查询这里出现瓶颈。

登录分为这么几个步骤:
 1. 用户输入用户民和密码,点击登录,输入用户民和密码不在测试事务内
 2. 加载登录后的主页面
 3. 获取一些登录信息等(异步)
 4. 查询db获取其它信息(异步);
 
从目前测试下来,‘加载登录后的主页面’是耗时最多的……


加载主页的时候 一定级联加载的 与登录表相关的表 
要么就是网络问题 看看公司的网络有没有路由转发之类的策略。 --------------------编程问答-------------------- 监控一下工作时间与非工作时间的服务器负载,为何差别这么大,哪些程序造成的 --------------------编程问答-------------------- 除
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,