清漆5秒延迟

我有一个奇怪的问题与清漆,它在一个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秒钟来回答,有时候。 与清漆无关,我的坏