Existe uma maneira melhor de analisar a taxa de acerto do verniz?

1

Atualmente, analiso a taxa de acertos do verniz assim

Emboraissosejabom,amaiorpartedasolicitaçãodosserviçosdoservidornãoéarmazenávelemcache.Issoreduzdrasticamenteataxadeacertos.

Como posso modificar isso de forma que eu conte apenas as solicitações candidatas ao armazenamento em cache e calcule a taxa? Qual métrica de varnishstat devo estar procurando?

    
por Quintin Par 21.08.2017 / 14:47

1 resposta

0

Parece que as estatísticas são precisas, mas você deseja que alguns URLs não sejam considerados erros.

Depende do que você quer dizer com solicitações que não são armazenáveis em cache. Se houver um padrão de URL no qual você saiba que cada solicitação de URL será única, por que pesquisar essa URL ou inserir a resposta do back-end no cache?

Portanto, exclua os URLs que você deseja descontar em um arquivo de configuração do Varnish, como sitename.vcl:

sub vcl_recv {
    # Do not cache following pages
    if (req.url ~ "^/monitor.*\?heartbeat=") { 
        return (pass); 
    }
}

Para mais informações, leia man vcl ou dê uma olhada nos poucos exemplos no Wiki de verniz .

Caso contrário, eles são POSTs (automaticamente não armazenados em cache) ou são excluídos em seu arquivo .vcl?

Este não é um problema de estatísticas. Se o seu vcl_recv() retornar um pass ou um error , ele não deverá contar como uma pesquisa ou uma falha (consulte o fluxograma). VCL_Basics.html "> aqui ) e seu cálculo existente já é representativo.

De varnishstat -l , os documentos em verniz e, pelo que vejo, é capaz de ser representado graficamente em Munin, não há nenhum contador relevante que faça algo significativamente diferente de cache_hit ou cache_miss.

  s_req = client_req = (cache_hit + s_fetch) 
  s_fetch = cache_miss + s_pass

Portanto, 1 - (s_fetch / s_req) pareceria uma taxa de acerto pior do que você já tem, contando as páginas aprovadas ou 'não encaixáveis' como erradas se ainda não existirem.

(Incidentalmente, se você alterar o back-end para a página 'uncacheable', não acredito que o Varnish contenha solicitações por back-end).

Idéia parva: você poderia executar logtail varnishncsa.log | grep -c "\(POST\|whateverURLisnoncacheable\)" e subtrair o resultado do total de erros, mas é muito trabalhoso produzir resultados menos precisos.

    
por 30.08.2017 / 03:10