Estou usando o Varnish 3.0.3 (o mais recente até este momento) com mais ou menos a instalação padrão, usando o seguinte para armazenamento:
# # Cache file location
VARNISH_STORAGE_FILE=/var/lib/varnish/varnish_storage.bin
#
# # Cache file size: in bytes, optionally using k / M / G / T suffix,
# # or in percentage of available disk space using the % suffix.
VARNISH_STORAGE_SIZE=4000M
#
# # Backend storage specification
VARNISH_STORAGE="file,${VARNISH_STORAGE_FILE},${VARNISH_STORAGE_SIZE}"
#
A maioria das páginas que podem ser armazenadas em cache terá um TTL muito longo. O site com o qual estou trabalhando é enorme e tem milhões de páginas, que não podem caber no tamanho de armazenamento listado acima (4 GB).
Prepare-se para as perguntas:
-
Vamos supor que todo o espaço de armazenamento esteja cheio e que nada no cache tenha expirado ainda (meu TTL é de duas semanas em cada item do cache).
-
Estou assumindo que o Ban Lurker é inútil aqui, porque ele só excluirá itens que estão vencidos e nenhum deles expirou.
Perguntas:
-
Dado o cenário acima, o que acontece com o Varnish quando solicitações adicionais chegam para algo que ainda não está no cache? O Varnish faz alguma tentativa de excluir itens antigos do cache, independentemente do TTL desses itens? O verniz falha? Pendure?
-
Se o Varnish não lidar com o cenário, há algo que eu possa fazer para configurá-lo para lidar melhor com o cenário? (Eu poderia obviamente diminuir o TTL dos itens no cache, mas estou querendo saber se há alguma sugestão adicional).
Estou vendo neste cenário que efetivamente o Varnish pára de responder a solicitações. No momento em que isso acontece, não estou sem memória ou com CPU na caixa.
Obrigado.
Acompanhamento:
Eu também vi este post
que me apontou para
que parece indicar que tudo "simplesmente acontece" ... mas parece que realmente envia uma requisição PURGE para o URL, o que pode requerer a adição de um material apropriado ao seu VCL (veja link )
Vou tentar e acompanhar se isso resolver o problema.