我们收到一个类似这样的常见问题:"我运行一个100个用户的负载测试并获得X RPS(每秒请求数)。当我添加超过500个用户后,仍然得到X RPS。这是怎么回事?"
以下是一个用来检查您不能生成您所期望负载的列表:
1、您的Web服务器CPU/内存/网络是得最高分么?
2、您的负载生成机器的(虚拟机或是代理)CPU/内存/网络是得最高分么?
3、您的数据库服务器的(如果存在的话)CPU/内存/磁盘/网络是否得最高分?
4、您是否在压力测试中打开了思考时间?这将会限制每个"用户"能够提交请求的速率。比如,每个请求中有5秒思考时间将产生最大每个"用户"0.2 RPS。关闭最大负载生成的思考时间或使用思考时间并为更符合实际的负载生成增加用户数量。后者通常需要更多的内存。
5、请确保在您的Web测试中代理属性不被设置为"默认值"。这就使自动代理服务器能够检测到哪个是很慢的并极大地减少您的最大吞吐量。
6、不要忘了一个负载测试工具是为了查找在您的应用程序中的瓶颈。如果您有包含由于对数据库或 CPU 瓶颈高响应时间网页它将限制每个虚拟用户每秒发生的请求数量。开始以少量的负载并确保响应时间能够随着负载的增加保持合理的增加。比如,具有思考时间的20个用户不应看到大于10秒的响应时间。您可以使用响应时间目标属性,以设置对每个请求的最大预期响应时间。
这个问题通常涉及到以上列表提到的。您是否还有其他任何提示需要添加到此列表中?
JoshCh发布于星期四,2006年5月18日上午9点30