本文共 1658 字,大约阅读时间需要 5 分钟。
去年做一个数字电视监测的项目,每天大约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等软硬组合,可以成倍的增加处理能力。
测试方法和测试结论很不完善,仅供参考。不足和不对的地方,还望达人斧正。转载地址:http://cagfl.baihongyu.com/