如何在我的服务器上重播 Apache 访问日志以进行真实世界的负载测试?

如何在我的服务器上重播 Apache 访问日志以进行真实世界的负载测试?

我在看用于负载测试 HTTP 服务器的工具?但我不知道如何在这些工具中重放我自己的现有日志。我有一个错误,它只在某些负载操作下发生,而我现有的 JMeter 和 AB 测试工具无法重现。

我只想简单地给予工具 access_logs 并让它以更快或相同的速度播放它们。

答案1

您可以使用 Jmeter 的访问日志采样器成分。

有一个关于如何使用它的简短教程此 PDF

答案2

假设您的访问日志中只有 GET 请求,并且您不介意请求在日志中时间戳的分辨率限制下聚集,那么大约 10 行 $SCRIPTING_LANGUAGE 应该可以解决问题。POST、cookie、HTTP 身份验证和更微妙的计时是一项更有趣的练习。

答案3

这需要一个支持 http 日志重放的程序,例如负载测试应用程序。HTTPerf 就是这样一个应用程序(https://github.com/httperf/httperf)。

操作方法文章位于https://www.igvita.com/2008/09/30/load-testing-with-log-replay/

答案4

你为什么不自己开发一个呢?获取日志;解析它。获取 URI。进行 curl 调用。你可以用 php 编写它并在 apache 中运行它以实现并发。

如果您的日志是 gz 格式,请执行 zcat,使用 readlog 工具。这将提供 URL。现在使用 phpCurl 访问 URL。为了获得更高的吞吐量,请在 apache 中运行它(使用 ab 加载它)。

相关内容