Introduction
Varnish peut cacher les données en mémoire et/ou sur disque.
On peut donc lui dire qu’on lui alloue 512Mo de mémoire pour cacher et aussi 95% de l’espace libre d’une partition en ajoutant les paramètres ci-dessous :
-s malloc,512M \
-s file,/var/lib/varnish/varnish_storage.bin,95%
Le stockage " Transient "
Varnish a aussi par défaut, un cache en mémoire pour les objets de courte durée, ce cache n ‘a pas de limite par défaut, ce fonctionnement par défaut peut donc faire swaper et cracher votre serveur (ou le mien 🙂 )
Ce cache ce nome " Transient Storage "
Pour limiter ce cache et donc contrôler totalement l’utilisation en mémoire de vos varnish ajouter aux options du daemon
-s Transient=malloc,1G \
-s malloc,6G \
-s file,/var/lib/varnish/varnish_storage.bin,95%"
Votre Varnish dans ce cas utilisera 1Go de mémoire pour les objets de faible TTL, 6Go de mémoire pour le reste + le stockage du disque. Varnish utilisera donc au maximum 7Go de ram et ne fera plus swaper votre serveur
Commande utile
Pour lister les stockages actifs de votre instance Varnish
varnishadm storage.list
Effet secondaire
Le compromis est que les fichiers non " pipé " supérieurs a la taille du cache " Transient " défini seront tout simplement tronqué et donc corrompu.
Dans ce cas, le stockage sur disque n’est pas forcément utile, a vous de voir 🙂