2016-05-24 6 views
0

Ich habe einen Varnish 4.0.3 Server auf Centos 7.2. Varnish hat drei Backends konfiguriert. Ich bekomme intermittierende 503 von Varnish. Ich habe eine tcpdump während eines 503-Ereignis gezogen, und ich sah:Lack 503 nach 200 von Backend

  • Consumer macht Anfrage
  • Varnish öffnet Buchse Backend lackieren.
  • Backend antwortet in < 500ms
  • Varnish sendet eine ACK, FIN an das Backend.
  • Varnish sendet eine 503 an den Verbraucher.
  • Backend sendet ein ACK, FIN

die Anforderungen an Lack, der nicht fundementally scheitern unterscheidet sich von Anfragen angezeigt werden, die folgenden werden. Die Fehlerrate beträgt ~ 1 pro 20k Anfragen.

- Begin   req 2795361 rxreq 
    - Timestamp  Start: 1464106437.502383 0.000000 0.000000 
    - Timestamp  Req: 1464106437.502383 0.000000 0.000000 
    - ReqStart  10.14.X.X 43190 
    - ReqMethod  GET 
    - ReqURL   /service/v2/service/parameter/parameter/parameter 
    - ReqProtocol HTTP/1.1 
    - ReqHeader  Accept: application/json 
    - ReqHeader  Content-Type: application/json 
    - ReqHeader  Host: UpsteamLoadBalancer:6081 
    - ReqHeader  Connection: Keep-Alive 
    - ReqHeader  User-Agent: Apache-HttpClient/4.2.4 (java 1.5) 
    - ReqHeader  X-Forwarded-For: 10.14.X.X 
    - VCL_call  RECV 
    - ReqURL   /service/v2/service/parameter/parameter/parameter 
    - ReqUnset  X-Forwarded-For: 10.14.X.X 
    - ReqHeader  X-Forwarded-For: 10.14.X.X 
    - VCL_return  hash 
    - VCL_call  HASH 
    - VCL_return  lookup 
    - Debug   "XXXX MISS" 
    - VCL_call  MISS 
    - VCL_return  fetch 
    - Link   bereq 2795368 fetch 
    - Timestamp  Fetch: 1464106442.526296 5.023913 5.023913 
    - Timestamp  Process: 1464106442.526311 5.023929 0.000015 
    - RespHeader  Date: Tue, 24 May 2016 16:14:02 GMT 
    - RespHeader  Server: Varnish 
    - RespHeader  X-Varnish: 2795367 
    - RespProtocol HTTP/1.1 
    - RespStatus  503 
    - RespReason  Service Unavailable 
    - RespReason  Service Unavailable 
    - VCL_call  SYNTH 
    - RespHeader  Content-Type: text/html; charset=utf-8 
    - RespHeader  Retry-After: 5 
    - VCL_return  deliver 
    - RespHeader  Content-Length: 281 
    - Debug   "RES_MODE 2" 
    - RespHeader  Connection: keep-alive 
    - Timestamp  Resp: 1464106442.526356 5.023974 0.000045 
    - ReqAcct  290 0 290 211 281 492 
    - End 
+0

Hey Stan, haben Sie dieses Problem? Wenn ja, könnten Sie Ihre VCL posten? – alejdg

+0

@alejdg Wir haben das Problem gelöst - wenn ich mich richtig erinnere, war der Cache für Varnish zu klein (die Standard 100mb?). Der Fehler (1/20000) trat auf, wenn der Cache voll war. Wir haben den Cache erhöht und das Problem ist verschwunden. Schätze das Follow-up! – Stan

Antwort

0

Ihr Client verwendet HTTP, um mit Varnish zu kommunizieren.

Die HTTP-Antwort 503 stellt den Mittelwert dar "Der Server kann die Anforderung aufgrund einer vorübergehenden Überlastung oder Wartung des Servers derzeit nicht verarbeiten. Dies bedeutet, dass dies eine vorübergehende Bedingung ist, die nach einiger Zeit behoben wird."

So wird dieser Fehler vom Varnish-Server gesendet, der oben genannten Grund anzeigt.

Grüße, Sudhansu