systemadmin.es > LAMP y web > varnishstat muestra continuamente el hitrate a 0

varnishstat muestra continuamente el hitrate a 0

Posteriormente a realizar una actualización de varnish me encontré que varnishstat mostraba continuamente el hitrate a 0:

varnishstat con hitrate a 0

varnishstat con hitrate a 0

Para poder debugar el problema, podemos añadir headers en las respuestas para que nos diga si es un HIT o un MISS:

sub vcl_deliver {
  if (obj.hits > 0) {
    set resp.http.X-Cache = "HIT";
    set resp.http.X-Cache-Hits = obj.hits;
  } else {
    set resp.http.X-Cache = "MISS";
  }
}

Una vez añadidas estas reglas en el varnish podemos darnos cuenta que en realidad sí que se esta cacheando:

# curl -I localhost:81/hola.jpg
HTTP/1.1 200 OK
Server: nginx/0.7.65
Content-Type: image/jpeg
Last-Modified: Tue, 11 Mar 2014 10:52:18 GMT
Content-Length: 0
Date: Tue, 11 Mar 2014 10:54:31 GMT
X-Varnish: 646096894
Age: 0
Via: 1.1 varnish
Connection: keep-alive
X-Cache: MISS

# curl -I localhost:81/hola.jpg
HTTP/1.1 200 OK
Server: nginx/0.7.65
Content-Type: image/jpeg
Last-Modified: Tue, 11 Mar 2014 10:52:18 GMT
Content-Length: 0
Date: Tue, 11 Mar 2014 10:54:33 GMT
X-Varnish: 646096895 646096894
Age: 2
Via: 1.1 varnish
Connection: keep-alive
X-Cache: HIT
X-Cache-Hits: 1

En realidad el problema es que varnishstat no usa la libreria correcta para poder leer el fichero de estado (_.vsm) correctamente. En este caso se trata de un Ubuntu, por lo que instalé:

# apt-get install libvarnishapi1

Una vez instalada, sin reiniciar ningńu servicio, varnishstat ya podrá leer correctamente el las estadísticas de varnish:

# varnishstat -1
client_conn                  5         0.03 Client connections accepted
client_drop                  0         0.00 Connection dropped, no sess/wrk
client_req                   5         0.03 Client requests received
cache_hit                    4         0.02 Cache hits
cache_hitpass                0         0.00 Cache hits for pass
cache_miss                   1         0.01 Cache misses
(...)

También podria ser que existieran varias instancias de varnish en el equipo, por lo que deberemos indicar la instancia correcta con la opción -n

One comment to “varnishstat muestra continuamente el hitrate a 0”

  1. Gracias. Justo me pasaba eso!

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>