Mettre le cache du module PageSpeed en RAM avec tmpfs - Angristan
Mettre le cache du module PageSpeed en RAM avec tmpfs

Mettre le cache du module PageSpeed en RAM avec tmpfs

Ce billet a été écrit il y a longtemps. Il peut contenir des informations erronées.

Il y a quelques mois je vous avais parlé du module PageSpeed sous Nginx qui permet d’accélérer son site web à travers plusieurs filtres, qui agissent sur le HTML, les images, le CSS ou encore le Javascript.

Lorsque ces ressources sont analysées et réécrites par PageSpeed, elles sont mises en cache dans un dossier qui se trouve dans /var/ngx_pagespeed_cache.

À chaque requête HTTP, PageSpeed va aller regarder dans le cache pour voir si la ressource demandée a déjà été réécrite. Pour réduire le temps de réponse, il faudrait donc que le cache soit accessible le plus rapidement possible : c’est ce qu’on va faire en le mettant en RAM.

Monter le dossier de cache dans tmpfs

On crée un point de montage tmpfs et on monte le dossier dedans :

sudo mount -t tmpfs -o size=256M tmpfs /var/ngx_pagespeed_cache

L’option size définit la taille que vous voulez allouer en MB. Pour ma part le cache tourne autour des 90-120 MB donc j’ai mis un peu plus.

Pour observer quelle taille fait le cache on peut utiliser la commande df :

Mettre le cache du module PageSpeed en RAM avec tmpfs

Et si vous utilisez des graphiques comme Munin, vous pouvez voir que la taille du cache augmente au fil du temps. (Il atteint généralement un seuil qu’il ne dépasse pas, pour ma part vers les 100MB de RAM)

Mettre le cache du module PageSpeed en RAM avec tmpfs

Montage automatique au reboot

Le cache est bien monté en RAM cependant le point de montage ne sera pas récréé au redémarrage. Pour cela, on va utiliser le fichier fstab qui s’occupe des partitions au démarrage.

Il faut ajouter cette ligne dans le fichier /etc/fstab :

tmpfs /var/ngx_pagespeed_cache tmpfs defaults,size=256M 0 0

Si vous redémarrez, le dossier sera automatiquement monté en tmpfs.

 

Notez que cette procédure n’est pas unique à PageSpeed. Si vous utilisez des logiciels qui ont des fichiers de cache vous pouvez aussi les mettre en mémoire vive. 🙂


Dernière modification le 27 octobre 2016.
S’abonner
Notification pour
guest

11 Commentaires
Le plus récent
Le plus ancien Le plus populaire
Commentaires en ligne
Afficher tous les commentaires
Clément Elgard

Bonjour,
Merci pour cet article !
Je me demandais pourquoi le choix de tmpfs plutôt que le couplage natif avec memcached ? Il y a une raison particulière derrière ou pour proposer une solution générique pour monter les systèmes de caches fichier en RAM simplement ?
Pour rebondir sur le sujet d’optimisation des accès fichiers en général on peut je pense aussi parler de ZFS (filesystem introduit par Sun sur Solaris et porté sur d’autres OS ensuite), certes bien moins accessible de prime abord mais qui propose une gestion du cache multi-niveau (avec un premier niveau en RAM) très intéressante.

Clément Elgard

Vieux motard que jamais 😉
Vu ici :
https://developers.google.com/speed/pagespeed/module/system#memcached
Cela dit en tentant de retrouver cette référence je suis tombé sur ces quelques lignes un peu plus haut dans le même document :
 » A file-system based cache is always employed on each server. memcached may be used as a scalable network-accessible cache in addiiton to the file cache. The file cache is always required since files larger than 1Mb cannot be stored on memcached, and it is important to optimize large images. »
Du coup ça fait bien sens de garder du tmpfs au moins on a pas de limitation de taille de cache à 1Mb.

Novakin

Dis moi utilises tu aussi le mod brotli ?

Novakin

Et pas seulement le mod statique ? tu utilises les libbrotli non ?

J’ai l’impression que google insight ne le gere pas….https://developers.google.com/speed/pagespeed/insights/?hl=fr&url=https%3A%2F%2Fangristan.fr%2F

Ou tu penses que ca peut etre un probleme plus global pour les utilisateurs de chrome ?

Novakin

Ca vient de brotli. J’avais le meme probleme chez moi. J’ai desactive le mod brotli et le probleme a disparu.

Je me demande si ca peut ne pas affecter les utilisateurs de chrome (en fonction de la version) naviguant sur les sites utilisant brotli. Ca bug bien sur google insight….

Edouard Patout

Ces commentaires sont géniaux !
PS: je suis abonné aux réponses.