【问题标题】:Gatling Handling of Cache-Control headers缓存控制标头的加特林处理
【发布时间】:2015-10-06 20:43:21
【问题描述】:

我正在使用 Gatling 测试的响应具有以下标头,其中包括 2 分钟的 Cache-Control 标头。

Accept-Ranges: bytes
Cache-Control: max-age=120, public
Connection: keep-alive
Content-Encoding: gzip
Content-Length: 17975 
Content-Type: application/json;charset=UTF-8
Date: Tue, 06 Oct 2015 00:21:43 GMT
ETag: "0be271f09dc4c9a0ddea9e4b5899b59b4"
Expires: Tue, 06 Oct 2015 00:23:42 GMT
P3P: CP="CAO DSP COR CURa ADMa DEVa TAIa PSAa PSDa IVAi IVDi CONi OUR SAMo OTRo BUS PHY ONL UNI PUR COM NAV INT DEM CNT STA PRE"
Vary: Accept-Encoding
X-Application-Context: application:prod

当使用像这样的基本模拟时,尽管位于 Varnish 服务器后面,但我很容易使服务器不堪重负。 Gatling 默认情况下是否包含缓存破坏器?

constantUsersPerSec(500) during(1 minute)

【问题讨论】:

    标签: gatling


    【解决方案1】:

    每个虚拟用户都有自己的缓存,没有全局共享的缓存(这没有意义)。在这里,您每秒创建 500 个新虚拟用户。假设您的方案只发送一个请求,您将以 500 次/秒的速度访问您的服务器。这不是你观察到的吗?

    【讨论】:

    • 感谢您的回复。 RFC 提到 max-age 优先:“如果响应包含 Expires 标头和 max-age 指令,则 max-age 指令将覆盖 Expires 标头,即使 Expires 标头更具限制性。”我希望每个用户都有自己的缓存,但我也希望 Varnish 服务器始终提供缓存副本,因为它被指示将内容缓存 2 分钟。
    • 对,对不起。 Gatling 正确地赋予 max-age 比过期更高的优先级。修正我的答案。
    • 如果你的资源确实被缓存了,我也希望有一个 s-maxage 属性。你确定你的 Varnish 配置吗?
    猜你喜欢
    • 2011-01-13
    • 1970-01-01
    • 2010-10-31
    • 1970-01-01
    • 2017-01-10
    • 2011-10-28
    • 2020-07-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多