В настоящее время я анализирую процент попаданий varnish следующим образом
Хотя это и хорошо, основная часть запроса, обслуживаемого сервером, не кэшируется. Это резко снижает процент попаданий.
Как я могу изменить это так, чтобы я считал только запросы, которые являются кандидатами на кэширование, и вычислял скорость? Какую метрику varnishstat мне следует искать?
Úgy tűnik, hogy a statisztikák pontosak, de azt szeretné, ha egyes URL-ek nem számítanának hiánynak.
Attól függ, hogy mit ért a nem gyorsítótárazott kérelmek alatt. Ha van olyan URL-minta, ahol tudja, hogy minden URL-kérés egyedi lesz, akkor miért is keresse meg azt az URL-t, vagy írja be a háttérprogram válaszát a gyorsítótárba?
Tehát zárja ki az elengedni kívánt URL-eket egy Varnish konfigurációs fájlban, mint például a. vcl:
sub vcl_recv {
# Do not cache following pages
if (req.url ~ "^/monitor.*\?heartbeat=") {
return (pass);
}
}
További információkért olvassa el az man vcl
cikket, vagy nézzen meg néhány példát a Lakk wiki oldalán.
Egyébként POST-ok (automatikusan nincsenek gyorsítótárban), vagy kizárásra kerülnek a .vcl fájlban?
Ez nem statisztikai probléma. Ha a vcl_recv ()
egy hozzáférési
vagy hibát
ad vissza, akkor ez nem számít keresésnek vagy hiányzásnak (lásd a folyamatábra itt ), és a meglévő számításod már reprezentatív.
varnishstat -l
, az lakk dokumentumok alapján, és amit látok, Munin-ben ábrázolható, nincs releváns számláló, amely bármi jelentősen eltérne a cache_hit vagy a cache_miss értékektől.
s_req = client_req = (cache_hit + s_fetch)
s_fetch = cache_miss + s_pass
Tehát 1 - (s_fetch / s_req)
rosszabb találati aránynak tűnik, mint amilyen már van, az elhaladt vagy a 'nem gyorsító jellegű' oldalakat hiányzónak számolja, ha még nem.
(Egyébként , ha megváltoztatja a háttérképet a 'cache-elhetetlenné' oldalra, akkor nem hiszem, hogy a Varnish számít backendenkénti kérésekre.)
Ostoba ötlet: futtathatná logtail varnishncsa.log | grep -c "\ (POST \ | bármiURLisnoncacheable \)"
, és vonja le az eredményt az összes kihagyásból, de sok munka valószínűleg kevésbé pontos eredmények elérése.