我有1个页面 so.jsp?kw=abc 进行数据搜索的页面,相对资源开销比较大,如果有人用压力测试发包的工具来对这个页面进行反复请求的话,会导致服务器无法访问(我用的是resin-pro-3.1.8)最简单的就是用 apache 自带的那个 ab.exe ab -c 100 -n 100 http://192.168.0.30/so.jsp?kw=abc 这样就无法访问了,而且CPU 开销爆高 (配置和平台: Xeon 5405(4核) * 2 , 8GB内存 , 300G SAS 15K硬盘,redhat as 5)请问这种情况如何处理,程序上解决,还是用防火墙能解决问题,请各位赐教!

解决方案 »

  1.   

    如果生产环境中确实存在高并发访问的话,你就要用程序结局他,你总不能因为这个问题就不让并发访问了吧。在程序上的解决方案建议lz考虑缓存机制。如果生产环境中不需要这么多的高并发,那么完全可以把不必要的ip访问隔离掉。另外建议lz如果可能换个支持高并发的服务器。
      

  2.   

    本帖最后由 java2000_net 于 2009-04-01 09:56:24 编辑
      

  3.   

    因为数据有300多万条,所以用缓存也不现实,因为是搜索页面,根据输入产生结果的,要提高速度也不好办,数据有那么多!我观察过一旦请求硬盘狂闪,CPU也是高居不下 应该是频繁的IO操作引起的!