【发布时间】:2014-12-17 12:43:00
【问题描述】:
我只是想知道“维护客户端负载”测试如何工作以及如何正确配置我们的环境(LAMP + nginX)以获得最佳结果?谁能解释一下这个测试?
【问题讨论】:
标签: php apache testing nginx lamp
我只是想知道“维护客户端负载”测试如何工作以及如何正确配置我们的环境(LAMP + nginX)以获得最佳结果?谁能解释一下这个测试?
【问题讨论】:
标签: php apache testing nginx lamp
loader.io 工程师在这里。我完全希望这个问题能在中午前结束,但我还是会尽力解释一下。
“保持负载”测试是一种奇怪的野兽。将任何加载程序测试视为“工作负载”可能会有所帮助,其中包含您正在测试的 URL 列表。
在加载器中,您为测试指定多个客户端,每个客户端获取工作负载的副本并运行它。如果客户端处于“保持负载”模式,它会反复迭代工作负载中的 URL - 保持其负载。所有其他客户端都这样做。
下面是请求模式的可视化,取自loader.io blog post
这有一些有趣的副作用。如果您将测试配置为增加客户端数量,我们经常看到的是测试开始时的响应时间很短,因此客户端在其工作负载上快速迭代。随着更多客户端的添加,响应变得更慢,从而有效地降低了请求速率。这会使维护负载测试难以推理,这就是我个人不建议从维护负载测试开始的原因。
就配置您的堆栈以获得最佳结果而言,这取决于“最佳结果”对您意味着什么,以及您使用堆栈所做的工作。没有银弹。如果您提供的是静态网站,请缓存它以获得最佳性能。如果您有一个复杂的应用程序对每个请求进行数据库查询并呈现内容 - 分析您的代码、数据库查询和其他一切以调整您的性能。
定义一些要求并设定一些性能目标 - 例如您希望在一小时内获得一百次页面浏览量吗?一分钟?弄清楚这些要求是什么,然后然后继续测试它。
一旦您有了自己的需求,您就可以以更有意义的方式使用 loader.io 和/或其他负载测试工具。如果您当前的表现不符合您的要求和目标,您可以使用这些工具来检查您的进度。从您的服务器轻松处理的小型测试开始,并增加它直到事情破裂。然后优化您的代码/数据库查询/等并再次测试,看看您改进了多少。
【讨论】: