Tomcat能承受的极限压力测试

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

背景
1.对基于web的增值业务用户访问的监测。
2.服务器硬件环境:
Dell™ PowerEdge™ 1950 Rack Mount Server
CPU PowerEdge™ 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等软硬组合,可以成倍的增加处理能力。
测试方法和测试结论很不完善,仅供参考。不足和不对的地方,还望达人斧正。

猜你喜欢

转载自blog.csdn.net/qq_41489540/article/details/114223841