[plonegov-br] Cache plone

Héctor Velarde hector em simplesconsultoria.com.br
Terça Agosto 22 16:32:00 BRT 2017


Boa tarde, Bruno; tua configuração tem um par de detalhes:

primeiramente... tu não está definindo um probe para as instâncias, isso 
significa que o Varnish não vai saber quando uma instância reinicia o 
fica fora do ar e vai continuar enviando requests mesmo ela não responder.

sugiro adicionar algo parecido ao seguinte:

probe healthcheck {
     .interval = 10s;
     .request = "HEAD / HTTP/1.1";
     .timeout = 2s;
     .threshold = 3;
     .window = 5;
}

e em cada um dos clients:

backend client1 {
     .host = "127.0.0.1";
     .port = "8081";
     .connect_timeout = 0.4s;
     .first_byte_timeout = 2m;
     .between_bytes_timeout = 60s;
     .probe = healthcheck;
     .max_connections = 32;
}

olha que alem de adicionar o probe mudei o valor de first_byte_timeout 
para 2 minutos: 5 minutos é um excesso e pode levar a problemas de 
saturação da instância por ter muitas requisições pendentes; 
max_connections ajuda também em esse caso.

se tu tem requisições que demoram 5 minutos em serem respondidas 
precisas otimizar o código para diminuir isso.

finalmente, tua configuração pode ficar bem mais limpa se tu remove todo 
o que já está incluso na configuração built-in do Varnish:

https://github.com/varnishcache/varnish-cache/blob/master/bin/varnishd/builtin.vcl

o funcionamento está explicado na documentação: a configuração built-in 
se executa sempre após a tua configuração caso tu não incluir um return 
nas subrotinas; podes poupar boa parte da configuração do vcl_recv que 
já está inclusa desse jeito.

a minha configuração de Varnish, por exemplo, tem só 100 linhas ao invés 
de 200 como no teu caso.

atenciosamente,
--
Héctor Velarde



Mais detalhes sobre a lista de discussão PloneGov-BR