Apache 上的重度压力测试

Apache 上的重度压力测试

我们有一个运行 Apache 的生产服务器,有时会因为负载过大而崩溃,我试图在测试服务器上复制这种情况以测试 Monit。所以我的目标是让 Apache 过载,使服务崩溃,或者至少使网站不可用。

我试图用 apache AB 来做到这一点: ab -n 100000 -c 1000 http://webtest/但这似乎还不够,尽管 /server-status/ 显示所有工作者都处于活动状态...有没有更强大的替代方案或更有效的方法来使用AB让阿帕奇屈服?

谢谢!

答案1

最有前途的免费开源负载测试工具是:

如果你需要准确重现生产中断,我建议使用 Apache JMeter,请参阅别再做假设了!了解如何使用 JMeter 重放生产流量文章了解详情。

答案2

尝试使用围城从另一台或多台具有合理 CPU 和网络连接的服务器进行测试。有趣的是,我发现从另一台服务器进行测试比从装有 Apache 的服务器进行测试能够承受更大的负载,尽管有大量的 CPU 空闲。这是我的主服务器,即 AWS 中的 t2.micro 实例,具有充足的 CPU 信用。

确保在 siege 配置文件中设置 benchmark = false (阅读文档)。服务器之间的延迟是关键,因此最好在同一个数据中心。我使用了 AWS m3.medium 现货实例,价格约为 1c/小时。

答案3

我非常喜欢使用 gor 进行负载测试。此工具允许我记录生产流量,然后在我觉得测试方便的时间“重放”流量。它还允许您以不同的速度重放流量。例如:

# Replay from file on 2x speed 
gor --input-file "requests.gor|200%" --output-http "staging.com"

使用生产流量进行测试是目前为止最好的方法。向你的主页发送 50 万次垃圾邮件不会给你提供可靠的统计数据。

--https://github.com/buger/gor

阅读 github 页面,了解所有可用功能。祝你好运!

答案4

我喜欢用接受 XLT进行负载测试。

相关内容