Tomcat能承受的极限压力测试

去年做一个数字电视监测的项目,每天大约120万的流量,当然这个总流量意义不是很大,考量应用服务的承受能力主要看峰值压力的承受能力和持续时间。
  大概测试报告如下,完整测试还包括对主体业务的影响等不方便全部列出。

  背景
  1.对基于web的增值业务用户访问的监测。
  2.服务器硬件环境:
    Dell(TM) PowerEdge(TM) 1950 Rack Mount Server
   CPU  PowerEdge(TM) 1950, 双核至强处理器 5120, 4MB 缓存
    内存:2G
   未作负载,单台服务器。
  3.测试分为纯净无任务页面,带业务 多线程内存操作(主机配置比较初级,监测数据缓存内存,定量存入文本,直接存数据库主机带不动)。
  4.软环境:
    Windows 2003
   Tomcat 5.0;Tomcat Initial memry pool 设定1G( tomcat目前本版最大只能到1G启动内存)
   J2SE 5
   5.测试工具:
    loadrunner等
测试概要
1.空页面压力测试
   说明:
   不带任何业务,监测页植入空页面,对tomcat单独测试。
   1.1 不带业务监测2000并发测试结果:
   1.1.1 模拟2000用户每秒并发访问持续20分钟后,tomcat服务内存溢出
   (日志2007-03-16 15:59:52 StandardWrapperValve[jsp]: Servlet.service() for servlet jsp threw exception java.lang.OutOfMemoryError: Java heap space)
    1.1.2 响应时间:(page1:3.859s,page2:3.198s,page3:2.443s,page4:3.236s)
    1.1.3 实际page1\2\3\4共点击了152404次,但实际产生99890条响应。

   1.2 不带业务监测1000并发测试结果:
   1.2.1 1000个用户每秒并发访问持续30分钟后,tomcat服务内存溢出
   1.2.2 平均响应时间(page1:3.245s,page2:3.065s,page3:2.68s,page4:2.85s)
   1.2.3 实际page1\2\3\4共点击了160306次,但实际产生80000条响应。

   1.2带业务监测。
   1. 2000个用户浏览了10分钟后,服务器tomcat服务内存溢出。
   2. 500个用户浏览了30分钟后,服务器tomcat服务内存溢出。

   测试过程 CPU:1-3% 内存使用:1G,相对稳定。
   参考结论:
   常看到论坛有人问,要做个站日访问80万、100万Tomcat能不能承受这样的 问题。其实核心还是要看峰值多大,持续多久。而且如果不是特殊应用,一个站点访问达到80万、100万完全有资金搭建更好的应用服务系统和集群负载。
   1. 峰值2000并发且持续不超过10分钟,小高峰并发不超过500并发且持续不超过30分钟,正常状态并发在50PV/秒可稳定运行。
   2. 日平均并发在50PV/秒,日访问432万稳定。
   3. 当然如果是直接访问数据,并且有数据 查询、更新、修改、删除的网站页面,这个值会大大缩减,简单测试发现大约是上面值的1/5-1/4左右。
   4. 如果你的站点有比较复杂的交互设计和较频繁的数据库操作,建议采用至少两台服务器做负载,一般情况下满足60-80万的日均流量,同时峰值100PV/并发持续10分钟问题不大。当然如果这样就不得不再考虑数据库的承受能力和整体结构调整了,如果有必要还是要模拟测试。

   其实考量应用服务的能力是多方面的,总之先考虑峰值及持续时间,其次考虑日均总流量。有必要时采用负载集群及weblogic等软硬组合,可以成倍的增加处理能力。
   测试方法和测试结论很不完善,仅供参考。不足和不对的地方,还望达人斧正。

你可能感兴趣的:(tomcat)