Jak radzi sobie Varnish z brakiem miejsca?

9

Używam Varnish 3.0.3 (najnowszy od tego pisania) z mniej więcej domyślną instalacją, używając następujących do przechowywania:

# # 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}"
#

Większość stron, które można buforować, będzie miała bardzo długi czas TTL. Witryna, z którą pracuję, jest ogromna i ma miliony stron, które prawdopodobnie nie mieszczą się w wymienionym powyżej rozmiarze pamięci (4 GB).

Przygotuj się na pytania:

  • Załóżmy, że cała przestrzeń dyskowa jest pełna i nic w buforze nie wygasło (moje TTL wynosi 2 tygodnie na każdy element w buforze).

  • Zakładam, że Ban Lurker jest tutaj bezużyteczny, ponieważ usunie tylko elementy, które wygasły, i żaden nie wygasł.

Pytania:

  • Biorąc pod uwagę powyższy scenariusz, co stanie się z Varnish, gdy pojawią się dodatkowe prośby o coś, czego jeszcze nie ma w pamięci podręcznej? Czy Varnish próbuje usunąć starsze elementy z pamięci podręcznej, niezależnie od TTL tych elementów? Czy lakier ulega awarii? Powiesić?

  • Jeśli Varnish nie obsługuje scenariusza, czy jest coś, co mogę zrobić, aby skonfigurować go tak, aby lepiej obsługiwał scenariusz? (Oczywiście mogłem obniżyć TTL przedmiotów w pamięci podręcznej, ale zastanawiam się, czy są jakieś dodatkowe sugestie).

Widzę w tym scenariuszu, że Lakier skutecznie przestaje odpowiadać na żądania. W tym momencie nie brakuje mi pamięci ani procesora na pudełku.

Dzięki.


Dalsze działania:

Też widziałem ten post

co skierowało mnie w stronę

co wydaje się wskazywać, że wszystko „po prostu się dzieje” ... ale wygląda na to, że faktycznie wysyła żądanie PURGE dla adresu URL, co może wymagać dodania odpowiednich elementów do VCL (patrz https://www.varnish-cache.org/ docs / 3.0 / tutorial / purging.html )

Spróbuję tego i skontaktuję się, jeśli to rozwiąże problem.

użytkownik174548
źródło
3
Jeśli chodzi o nas, używamy Varnish do buforowania ogromnych ilości danych, w szczególności repozytorium obrazów około 2,8 miliona obrazów z plikiem o wielkości 30 gig. Wypełnienie lakierem zapełnia 30 gig i jak tylko nowe rzeczy zostaną dodane do pamięci podręcznej, usuwa wpis pamięci podręcznej, który „nie był dostępny przez najdłuższy czas”. Każdy wpis w pamięci podręcznej jest powiązany z czasem, jest to znacznik czasu ostatniego dostępu. Wpis z najniższym znacznikiem czasu ostatniego dostępu. (Btw: Dlaczego buforujemy obrazy !? Ponieważ dysk twardy jest zbyt wolny, aby je obsługiwać, a dyski SSD za wszystko kosztują zbyt dużo)
sinni800

Odpowiedzi:

1

Zgodnie z twoją konfiguracją wydaje się, że używasz dysku do przechowywania pamięci podręcznej lakieru.

Nie jest to zalecane ( dla wydajności ), chyba że masz dobry powód (jak sinni800).

Spróbuj użyć pamięci RAM do przechowywania pamięci podręcznej lakieru („malloc” zamiast „file”) i odtwórz problem.


źródło