NFsec Logo

Cacheowanie obiektów w varnishu w zależności od popularności

05/07/2012 w Administracja Brak komentarzy.  (artykuł nr 356, ilość słów: 241)

J

eśli interesuje nas dłuższe cechowanie w varnishu obiektów, które są bardziej popularne od innych – poniższy przykład pozwoli wydłużyć przetrzymywanie obiektu w pamięci cache, jeśli ten zostanie wywołany więcej niż 500 (5 godzin) i 1000 (10 godzin) razy:

sub vcl_hit {
    if (obj.hits == 500) {
        set obj.ttl = 5h;
    } elsif (obj.hits == 1000) {
        set obj.ttl = 10h;
    }
}


Możemy również trzymać obiekt w pamięci cache dopóki nie będzie już popularny:

sub vcl_hit {
    if (obj.lastuse < 1h && obj.hits > 100) {
        set obj.ttl = 5h
    }
}

W pierwszym przypadku ważne jest, aby wykorzystać znak równości, ponieważ w razie użycia znaku większości np. obj.hits > 500 TTL obiektu zostanie zwiększone za każdym trafieniem po 500’set trafieniach. A jak sprawdzić czy w ogóle takie liczby są osiągane w naszym przypadku? Wystarczy oznaczyć trafiane obiekty odpowiednim nagłówkiem z informacją o ilości trafień:

sub vcl_deliver {
    if (obj.hits > 0) {
        set resp.http.X-Hits = obj.hits;
    }
}

I próbować wyłapać je za pomocą varnishlog’a:

varnishlog -O -i TxHeader -I X-Hits: 500

Wszystko zależny od naszego środowiska. Oczywiście najlepszą drogą są własne eksperymenty z własnymi wartościami.
Więcej informacji: Varnish Cache

Kategorie K a t e g o r i e : Administracja

Tagi T a g i : , , ,

Zostaw odpowiedź.

Musisz być zalogowany by móc komentować.