我查看了用于负载测试 HTTP 服务器的工具?但我看不到如何在任何这些工具中重播我自己现有的日志。我有一个错误,该错误仅在我现有的 JMeter 和 AB 测试内容无法重现的某些加载操作下发生。
我想简单地提供工具 access_logs 并让它以更快或相同的速度播放它们。
我查看了用于负载测试 HTTP 服务器的工具?但我看不到如何在任何这些工具中重播我自己现有的日志。我有一个错误,该错误仅在我现有的 JMeter 和 AB 测试内容无法重现的某些加载操作下发生。
我想简单地提供工具 access_logs 并让它以更快或相同的速度播放它们。
您可以使用 Jmeter 的Access Log Sampler组件。
在这个 PDF中有一个关于它的使用的简短教程。
假设您在访问日志中获得的所有内容都是 GET 请求,并且您不介意请求在日志中时间戳的分辨率限制下堆积,大约 10 行 $SCRIPTING_LANGUAGE 应该可以解决问题。POST、cookie、HTTP auth 和更微妙的时间安排是一个更有趣的练习。
这将需要一个支持 http 日志重放的程序,例如负载测试应用程序。HTTPerf ( https://github.com/httperf/httperf ) 就是这样一个应用程序。
操作方法文章位于https://www.igvita.com/2008/09/30/load-testing-with-log-replay/
我会做一些不同的事情。我确实理解你的问题,但如果你想加载你的服务器,你可能想看看“ab”工具。它带有大多数 apache 安装。跑步:
将执行 1000 个请求,一次执行 15 个请求。我知道这不是你要找的,这只会查询你给它的一个地址。如果您需要加载,这是一种快速且简单的方法,它将为您提供一些可能非常有用的调试统计信息。
为什么不自己开发?获取日志;解析它。获取 URI。拨打 curl 电话。您可以在 php 中编写它并在 apache 中运行它以实现并发。
如果您的日志是 gz 格式,请执行 zcat,使用 readlog 工具。这将给出 URL。现在使用 phpCurl 来访问 URL。为了获得更高的吞吐量,请在 apache 中运行它(使用 ab 加载它)。