在没有专业压测工具和用例设计时,AWS PaaS提供了一个内嵌的压测基准,包括一个压测程序和一系列基准脚本用例。
最初,这个基准程序只用于AWS平台研发中心内部,用来对比架构调整前后各项指标的基准差。对于私有部署AWS PaaS的用户,这个跑分程序也可以快速测试出您的AWS环境性能数据。
原理
- 模拟50、100、200、400和600个并发请求
- 每个请求循环执行100次(如50并发请求会执行5000次)
- 无思考时间的发出和处理并发请求,直至跑完
- 给出当前环境下的
最佳
并发处理能力和对应的TPS值(越大越好)
最佳
是指多大并发量时系统处理的最快。(1)无错误(2)TPS(Transaction Per Second) 每秒系统能够处理的请求数最多
准备
- 安装AWS PaaS
- 各项服务启动正常
默认私有部署的AWS PaaS,Web端最大支持200并发,可以修改
%AWS-HOME%/webserver/webapps/portal/WEB-INF/classes/aws-server.xml
,将maxConnector做适当调整。通常可设置为压测期望最大并发*1.5倍
<maxConnector>900</maxConnector>
使用
使用这个命令非常的方便。进入到%AWS-HOME%/bin目录,执行./benchmark.sh arg
,参数arg是内嵌的用例名,支持以下六类场景:
./benchmark.sh cpu
,模拟CPU运算的逻辑,获得当前计算资源的TPS值./benchmark.sh io
,模拟IO文件读写的逻辑,获得当前文件IO读写的TPS值./benchmark.sh http
,模拟读取index.jsp的http请求,获得当前Web Server的TPS值./benchmark.sh aaa
,模拟大并发、长事务处理下的框架稳定性(TPS值仅参考)./benchmark.sh cmd
,模拟AWS MVC的接参、传参和逻辑处理,获得MVC框架的TPS值./benchmark.sh db
,模拟数据库INSERT、SELECT操作,获得当前数据库服务的TPS值
benchmark是一种基于同一测试用例和测试方法来比较不同环境下AWS PaaS的性能差距。基于这个基准的得分,你可以初步做出这个AWS部署环境的性能
更好
或更差
的结果。也可以在调整各项参数(如AWS数据库连接池、数据库自身优化、操作系统句柄数优化等)后,再次比较前后的性能差异。