一般情况下,我会把应用服务器和数据库服务器搭建在同一机器上。
几天前的测试环境搭建也不例外。
快下班的时候,老板说要做一下性能测试。
当时我只注意的环境是:
服务器:tomcat-6.0.13
数据库:mysql5.0
操作系统:CentOS 4
所知道的要素:
1:tomcat的优化:将maxThreads设置成100
然后将数据库的maxActive分别设置:15,20,25 。
2:需要测试的有三个地方:首页、电影分类、单个电影
3:测试持续时间为5分钟,虚拟用户为100个
期望结果:
根据不同的数据库maxActive值,在条件3相同的情况下,对比哪种的测试结果的性能比较好。
这个相对来说比较简单,在很快的时间我就录制好了三个需要测试的脚本, 在运行脚本的时候,
遇到的问题:LoadRunner的关联
解决方法:http://www.51testing.com/?58025/action_viewspace_itemid_44330.html
得到的结果是:
在数据库maxActive值为20时,首页、电影分类、单个电影等测试结果的性能最好。
判断的要素:
吞吐量、点击量、平均响应时间
分析的方法:
在测试持续时间和虚拟用户都相同的情况下,比较不同maxActive值时,所得到的吞吐量、点击量、平均响应时间,
如果吞吐量和点击量都比其他两种情况下要大,而且平均响应时间比其他两种情况下要低,则其性能比较好!
做到这里,我已经很明确在哪种配置下得到的性能比较好,下一步要做的是,就是弄清楚到底是什么影响了性能?
是应用服务器,还是数据库服务器,还是操作系统呢?
接下来我想先对应用服务器进行优化,
具体情况请查看:http://www.51testing.com/?58025/action_viewspace_itemid_61154.html
然后在:
所知道的要素:
1:tomcat的优化:将maxThreads设置成100
数据库的maxActive设置:20
2:需要测试的有三个地方:首页、电影分类、单个电影
3:测试持续时间为5分钟,虚拟用户为100个
期望结果:
对比在没有安装apr之前的测试结果和已安装了apr之后,对比哪种的测试结果的性能比较好。
得到的结果:
在安装apr之前和安装apr之后,没有明显的变化,所以排除应用服务器的问题。(虽然比较粗,但目前水平有限也只能做到这样了)
接下来就要找出是数据库服务器,还是操作系统的性能有问题了。
第一步:将应用服务器和数据库服务器分开
我把数据库服务器从CentOS 4 移到了WINDOWS XP 下。
第二步:分别监控两台机器
遇到的问题:如何监控呢?
解决方法:http://www.51testing.com/?58025/action_viewspace_itemid_44676.html
http://www.51testing.com/?58025/action_viewspace_itemid_44562.html
第三部:确定在运行脚本,需要监控哪些计数器
1: 监控两台机器的CPU使用情况
2:吞吐量、点击量、平均响应时间和成功率
期望结果:
对比应用服务器和数据库服务器没有分开之前的测试结果和分开之后的测试结果哪种性能比较好。
得到的结果:
1:CentOS 4 这台机器的CPU使用率在两次运行中一直居高不下。
2:首页在应用服务器和数据服务器分开之后,吞吐量和点击量高了很多,并且平均响应时间也少了很多
3:单个电影的吞吐量和点击量都比以前有所提高,但平均响应时间却没有降低。
4:电影分类的吞吐率,点击率和平均响应时间都没有什么变化。
分析结果:
1: 根据两次性能测试结果:CentOS 4 这台机器的处理器存在着瓶颈,需要增加处理器来提高性能
2: 首页没有使用到数据库的查询,而电影分类中使用到数据库查询比较多,所以初步分析数据库的性能存在着问题,需要做进一步的优化。
由于MYSQL5.1版本中支持了分区,建议开发人员使用分区技术。
参考指标:
度量 指标 问题
cpu 95%以上 瓶颈
80-85% 最大上限
70%以下 正常
本次测试中欠缺的是:对数据库服务器的监控。
期望提高的是:对操作系统的监控,进一步分析出问题所在,
对数据库服务器的监控,给出明确点优化意见
写在这里,不知道我这样做性能测试的方法对不对,还希望看过此文章的朋友给出意见和建议。