【发布时间】:2013-08-05 23:37:06
【问题描述】:
我习惯跑步
varnishadm -T localhost:6082 debug.health
检查后端的健康状态,但如何详细检查探测失败的原因(例如超时、错误的 http 状态码)?
【问题讨论】:
标签: varnish
我习惯跑步
varnishadm -T localhost:6082 debug.health
检查后端的健康状态,但如何详细检查探测失败的原因(例如超时、错误的 http 状态码)?
【问题讨论】:
标签: varnish
在 Varnish 4.0 中,您可以查看所有后端的状态及其最近的探测成功率
varnishadm backend.list
【讨论】:
varnishadm backend.list -p 获取更详细的旧视觉列表
找到 [1] 有点棘手,但是:
每个轮询都记录在共享内存日志中,如下所示:
注意:在 2.0 发布之前有待完善!
0 Backend_health - b0 Still healthy 4--X-S-RH 9 8 10 0.029291 0.030875 HTTP/1.1 200 Ok
...
注意第二个词表示当前状态,第一个词 word == "Still" 表示状态不变。
- 4--X-S-RH -- 指示最新轮询如何进行的标志
- 4 -- IPv4 连接建立
- 6 -- IPv6 连接已建立
- x -- 请求传输失败
- X -- 请求传输成功
- s -- TCP 套接字关闭失败
- S -- TCP 套接字关闭成功
- r -- 读取响应失败
- R -- 读取响应成功
- H -- 对结果很满意
- 9 -- 上次 .window 投票中的好投票数
- 8 -- .threshold(见上文)
- 10 -- .window(见上文)
- 0.029291 -- 此轮询的响应时间,如果失败则为零
- 0.030875 -- 良好投票响应时间的指数平均值 (r=4)。
- HTTP/1.1 200 Ok -- 来自后端的 HTTP 响应。
所以你应该使用 varnishlog 来获取失败的详细信息。
[1]https://www.varnish-cache.org/trac/wiki/BackendPolling#SHMlog
【讨论】:
至少对于 varnish 4,您还可以使用此命令来调试运行状况探测:
varnishadm debug.health
【讨论】:
varnishadm backend.list