在当前设置中,我们遇到了 Varnish 的问题,我们正在运行 CentOS 5.7 x86_64 xenpv,带有 Cpanel WHM,托管在 VPS.net 上。
有时我们会从 Varnish 收到 Guru Meditation,当我们使用以下命令查看 varnishlog 时,varnishlog -d -c -m TxStatus:503
它会返回类似以下内容的输出:
15 VCL_call c recv
15 VCL_acl c NO_MATCH devs
15 VCL_return c pass
15 VCL_call c hash
15 Hash c ****
15 Hash c *************
15 VCL_return c hash
15 VCL_call c pass pass
15 Backend c 12 default default
15 TTL c 1835862523 RFC 0 -1 -1 1332454056 0 1332454055 375007920 0
15 VCL_call c fetch hit_for_pass
15 ObjProtocol c HTTP/1.1
15 ObjResponse c OK
15 ObjHeader c Date: Thu, 22 Mar 2012 22:07:35 GMT
15 ObjHeader c Server: Apache/2.2.21 (Unix) mod_ssl/2.2.21 OpenSSL/0.9.8e-fips-rhel5 mod_bwlimited/1.4 mod_fcgid/2.3.6
15 ObjHeader c X-Powered-By: PHP/5.3.9
15 ObjHeader c Expires: Thu, 19 Nov 1981 08:52:00 GMT
15 ObjHeader c Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
15 ObjHeader c Pragma: no-cache
15 ObjHeader c Content-Type: text/html; charset=utf-8
15 ObjHeader c X-Cacheable: NO:Cache-Control=private
15 FetchError c chunked read_error: 12 (Could not get storage)
15 VCL_call c error deliver
15 VCL_call c deliver deliver
据我所知,我们可以尝试增加 nuke_limit,但目前我们的 nuke_limit 为 500,而运行时varnishstat -1 -f n_lru_nuked
我们“仅”得到总共 1031,即使我们已经看到错误发生在多个页面上。
当我们运行 top 查看 Varnish 使用了多少内存时,它只显示使用了 763 米,尽管我们已将其设置为允许使用 1200 米。
知道可能是什么问题吗?
答案1
“无法获取存储” 对我来说意味着 Varnish 无法存储它想要获取的对象。您是否达到了最大缓存大小?您可以发布 varnishstat 的输出吗?