我如何在服务器上重播Apache访问日志以进行真实负载testing?

我看了一下用于加载testingHTTP服务器的工具? 但是我看不到如何在任何这些工具中重放我自己的现有日志。 我有一个只发生在我现有的JMeter和ABtesting的东西无法重现的某些负载操作的错误。

我想简单地给这个工具的access_logs,并让它回放,要么更快,要么以相同的速度。

您可以使用Jmeter的访问日志采样器组件。

这个PDF有一个简短的教程。

假设您的访问日志中包含的所有GET请求都是GET请求,并且您不介意在日志中的时间戳分辨率限制下聚集的请求,则大约10行$ SCRIPTING_LANGUAGE应该可以做到这一点。 POST,Cookie,HTTPauthentication,以及更微妙的时机是一个更有趣的练习。

这将需要一个程序,如负载testing应用程序,它支持http日志重播。 一个这样的应用程序是HTTPerf( https://github.com/httperf/httperf )。

技巧文章在https://www.igvita.com/2008/09/30/load-testing-with-log-replay/

我会做一些不同的事情。 我理解你的问题,但是如果你在加载你的服务器,你可能想看看'ab'工具。 它带有大多数的Apache安装。 运行:

ab -c 15 -n 1000 http://site.name/

将一次执行1000个请求,执行15个请求。 我知道这不是你正在寻找的东西,而只会查询你给的那个地址。 如果你需要加载,这是一个快速的方法和简单的方法,它会给你一些潜在的非常有用的统计debugging。

你为什么不开发自己的? 获取日志; parsing它。 获取URI。 curl电话。 你可以写在PHP中,并运行它在Apache并发。

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