JSP服务器高并发数问题,请各位指导

yubaojian0616 09-04-21
    

最近做的项目,商城类要求就是稳定,因为客户要做大量的广告来宣传,开发要求就是服务器能够接受高并发量.
技术就是pojo不涉及到EJB或者要求的j2ee其他重型技术所以目前用的是tomcat,但是问题很多,并发测试的时候超标后很长时间访问会打不开,要等一段时间才能正常访问,原因估计服务器有大量的没有返回的线程.不知道这个如何解决,难道不能防止客户端测试我用的是
ab -c 1000 -n 100000 http://localhost/index.jspx?cpi=10
测试中途返回无法继续,我加到了service.xml的配置参数

<Connector port="80"
maxThreads="2048" minSpareThreads="25" maxSpareThreads="512"
enableLookups="false" redirectPort="8443" acceptCount="1024"
debug="0" connectionTimeout="10000"
disableUploadTimeout="true" />

仍然无法正常访问,不过返回内容表示有400多个内容返回正常,但是通过浏览器可以正常返回,我有个疑问,连接数不能无限增大,如果客户端有人用同样地方法测试,将会出现tomcat宕机,请教各位如何解决,是换服务器还是........
还有疑问就是当出现上面的情况("高访问后tomcat无法正常访问需要等待")这个有没有好的解决办法??

[该贴被admin于2009-04-21 14:12修改过]

    

fireflyc
2009-04-22 23:00

对于一个基于web的系统来说性能问题应该是一份为三的看:
一个是前端的web服务器的性能,另一个是数据库的性能,还有是系统本身的代码的性能

前端的web服务器的性能是指,web服务器在大量请求的时候是否能够来得及响应。
系统的代码性能是指系统的本身的业务逻辑需要执行的时间。
后端就是数据库的性能了,就是指从数据库中捞数据的时间。

apache的ab测试是针对web服务器的性能。这里是指tomcat在大量请求的时候是否来得及处理用户的请求。

提升tomcat吞入的办法很简单,开启tomcat的NIO支持及就可以了。保证吞入的速度像吃了兴奋剂一样。O(∩_∩)O哈哈哈~,不过这个只是吞入的效率啊。。吐出的效率提升要靠后面提到的两个了,业务逻辑本身的效率和数据的效率。。