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 🙂 ) {.warning}
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
varnishadm storage.list
: Pour lister les stockages actifs de votre instance Varnish
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 🙂