[plonegov-br] Cache plone

Bruno Barbosa bsbruno1 em gmail.com
Quarta Agosto 23 11:54:43 BRT 2017


Muito bom Héctor!

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.


Adicionei o probe lá e diminui o first_byte_timeout conforme sugeriu.

Utilizei essa configuração em um Portal Padrão com zero alterações e
instalado conforme a documentação quando surgiu a necessidade em uma
empresa que trabalhei e atendeu bem. Como acho que é uma atividade
recorrente para quem está trabalhando com portais Plone eu subi esse gist
para ajudar quem precisar, nem que seja como um "start point".

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.


Como não estou trabalhando com Plone atualmente estou sem ambiente para
testar novas modificações nesse arquivo então prefiro não fazer essa
otimização agora, mas fique a vontade se quiser mandar uma revisão lá, ou
quem sabe podemos até colocar em algum repo da comunidade PloneGovBR como
exemplo para quem precisar.

Abs

--
Bruno Barbosa
Web Developer
*brunobarbosa.com.br <http://brunobarbosa.com.br>*

2017-08-22 16:32 GMT-03:00 Héctor Velarde <hector em simplesconsultoria.com.br>
:

> 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
>
>
> --
> Comunidade Plone no Governo
> Site: http://www.softwarelivre.gov.br/plone
> Wiki: http://colab.interlegis.leg.br/wiki/PloneGovBr
> Histórico: http://colab.interlegis.leg.br/search/?type=thread&order=lat
> est&list=plonegov-br
> Lista: https://listas.interlegis.gov.br/mailman/listinfo/plonegov-br
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.interlegis.gov.br/pipermail/plonegov-br/attachments/20170823/e516818a/attachment.html>


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