我有一个奇怪的问题与清漆,它在一个API的前面,它caching整个响应。 它大部分工作正常,但时不时要求5秒(或很less10秒,或15秒,总是增量为5)比平常更多的返回。
我已经尝试绕过前面的HAProxy,同样,我检查,它的URL是否已经被caching或没有(我检查了年龄头)。 所以它不能成为后端,因为页面在caching中,这不是什么前面的清漆,只留下清漆本身作为问题的原因。
任何想法可能会导致5秒钟的延迟? 我已经检查varnishlog,在那个延迟清漆没有做任何事情。 我也尝试过在这个延迟期间手动提出另一个请求,清漆回答良好,所以它不会被冻结或任何东西,它工作正常。 在这5秒结束时,它像往常一样输出请求的日志,没有什么奇怪的。 例如:
- “请求”132712
- 开始req 132711 rxreq
- 时间戳开始:1499701302.309413 0.000000 0.000000
- 时间戳记需求:1499701302.309413 0.000000 0.000000
- ReqStart 127.0.0.1 43955
- ReqMethod GET
- ReqURL /url
- ReqProtocol HTTP / 1.1
- ReqHeader User-Agent:curl / 7.38.0
- ReqHeader主机:主机
- ReqHeader接受: /
- ReqHeader X-Forwarded-Proto:https
- ReqHeader X-Forwarded-For:ip
- ReqHeader连接:closures
- ReqUnset X-Forwarded-For:ip
- ReqHeader X-Forwarded-For:ip,127.0.0.1
- VCL_call RECV
- ReqUnset X-Forwarded-For:ip,127.0.0.1
- ReqHeader X-Forwarded-For:ip,127.0.0.1,127.0.0.1
- VCL_return散列
- VCL_call HASH
- VCL_return查找
- 命中2147582482
- VCL_call HIT
- VCL_return交付
- RespProtocol HTTP / 1.1
- RespStatus 200
- RespReason好的
- RespHeaderdate:2017年7月10日星期一15:10:00 GMT
- RespHeader服务器:gunicorn / 19.7.1
- RespHeader内容types:application / json; 字符集= UTF-8
- RespHeader X-Varnish:132712 98834
- RespHeader年龄:1902
- RespHeader Via:1.1 varnish-v4
- VCL_call DELIVER
- RespHeader Xcaching:是的
- RespUnset服务器:gunicorn / 19.7.1
- RespUnset Via:1.1 varnish-v4
- RespUnset X-Varnish:132712 98834
- VCL_return交付
- 时间戳过程:1499701302.309480 0.000067 0.000067
- RespHeader内容长度:251799
- debugging“RES_MODE 2”
- RespHeader连接:closures
- RespHeader接受范围:字节
- 时间戳响应:1499701302.309571 0.000159 0.000092
- debugging“XXX REF 2”
- ReqAcct 198 0 198 197 251799 251996
- 结束
我意识到清漆认为这是迅速处理,但curl的一面花了5秒钟。 Curl直接在清漆服务器上使用,所以不是networking延迟。 这是有点难以重现,我正在使用一个循环查询脚本,并显示curl time_total最终发生。
这可能是Linux的一面吗? 也许某种限制,或套接字清理工作或会暂停请求的东西。 它可能发生一次每400或500个请求,有时更多,有时更less。
问题是DNSparsing,curl每次都做一个新的DNS查询,看起来像这个服务器的parsing器(Google的8.8.8.8)需要5秒钟来回答,有时候。 与清漆无关,我的坏