2015-10-06 56 views
0

我使用Gatling测试的响应具有以下标题,其中包括一个2分钟的Cache-Control标题。Gatling处理缓存控制标题

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) 

回答

0

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

+0

感谢您的回复。 RFC提到max-age优先:“如果响应同时包含Expires头和Max-age指令,则即使Expires头更具限制性,max-age指令也会覆盖Expires头。”我希望每个用户都拥有自己的缓存,但我也希望Varnish服务器始终提供缓存副本,因为它已被指示缓存内容2分钟。 – Steve

+0

对不起。加特林适当地给予最大年龄更高的优先权到期。修复我的答案。 –

+0

如果你的资源确实被缓存了,我也会期待一个s-maxage属性。你确定你的清漆配置? –