[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