Comment Varnish gère-t-il le manque de stockage?

9

J'utilise Varnish 3.0.3 (la dernière en date de cette écriture) avec plus ou moins l'installation par défaut, en utilisant ce qui suit pour le stockage:

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

La plupart des pages qui peuvent être mises en cache auront un TTL très long. Le site avec lequel je travaille est énorme et compte des millions de pages, qui ne peuvent pas correspondre à la taille de stockage indiquée ci-dessus (4 Go).

Préparez-vous pour les questions:

  • Supposons que l'espace de stockage entier soit plein et que rien dans le cache ne soit encore expiré (mon TTL est de 2 semaines sur chaque élément du cache).

  • Je suppose que le Ban Lurker est inutile ici, car il ne supprimera que les éléments expirés, et aucun n'est expiré.

Des questions:

  • Compte tenu du scénario ci-dessus, qu'arrive-t-il à Varnish lorsque des demandes supplémentaires arrivent pour quelque chose qui n'est pas déjà dans le cache? Varnish essaie-t-il de supprimer les anciens éléments du cache, quel que soit le TTL de ces éléments? Est-ce que Varnish plante? Pendre?

  • Si Varnish ne gère pas le scénario, puis-je faire quelque chose pour le configurer pour mieux gérer le scénario? (Je pourrais évidemment réduire le TTL des éléments dans le cache, mais je me demande s'il y a des suggestions supplémentaires).

Je vois dans ce scénario que Varnish cesse de répondre aux demandes. Au moment où cela se produit, je ne suis pas à court de mémoire ou de processeur sur la boîte.

Merci.


Suivre:

J'ai aussi vu ce post

qui m'a orienté vers

qui semble indiquer que tout "se produit" ... mais il semble qu'il envoie en fait une demande PURGE pour l'URL, ce qui peut nécessiter l'ajout des éléments appropriés à votre VCL (voir https://www.varnish-cache.org/ docs / 3.0 / tutorial / purging.html )

Je vais essayer cela et assurer le suivi si cela résout le problème.

user174548
la source
3
En ce qui nous concerne, nous utilisons également Varnish pour mettre en cache d'énormes quantités de données, en particulier un référentiel d'images d'environ 2,8 millions d'images avec un fichier Varnish de 30 gig. Le vernis remplit le 30 gig et dès que de nouvelles choses sont ajoutées au cache, supprime l'entrée du cache qui n'a pas été "utilisée pendant le plus longtemps". Chaque entrée de cache a un temps qui lui est associé, c'est le dernier horodatage d'accès. L'entrée avec le dernier horodatage d'accès le plus bas disparaît. (Btw: Pourquoi mettons-nous en cache des images!? Parce que le disque dur est trop lent pour les servir et que les SSD pour tout coûtent trop cher)
sinni800

Réponses:

1

Selon votre configuration, vous semblez utiliser le disque pour stocker le cache de vernis.

Ce n'est pas recommandé ( pour les performances ) sauf si vous avez une bonne raison (comme sinni800).

Essayez d'utiliser de la RAM pour stocker le cache de vernis ("malloc" au lieu de "fichier") et reproduisez le problème.


la source