Comment mettre un dossier de cache directement dans la RAM ?

Cette astuce n’est possible que sur les serveurs dédiés.

Un système de cache statique, comme WP Rocket, stocke l’ensemble des pages d’un site web sous forme de fichiers HTML.

Sans système de cache, lorsqu’un visiteur accède à une page web, WordPress va être chargé en premier. Ensuite, il interroge la base de donnée pour savoir quels sont les plugins et le thème a inclure. Enfin, il charge le contenu de la page en cours (toujours à l’aide de requêtes dans la base de donnée)

Ce mécanisme obligatoire peut quelques fois être très long. Le language SQL (permettant la communication avec la base de données) est très souvent un goulet d’étranglement.

Un système de cache enregistre chaque page d’un site en fichiers HTML. Ainsi, lorsqu’un visiteur demande une page, c’est le fichier stocké qui sera directement affiché sans aucune requête à la base de donnée.

Les fichiers HTML étant stockés sur le serveur, la vitesse d’affichage de ces fichiers sera dépendante de la vitesse de lecture du disque (et d’écriture pour la sauvegarde).

La meilleure solution étant d’avoir un disque SSD sur son serveur bénéficiant de très bonnes performances en lecture/écriture comparé à des disques mécaniques.

Problème ? Le SSD a un coût plus élevé et il est encore moins répandu que les disques mécaniques.

Pour  bénéficier de performances en lecture et écriture des plus intéressantes, une solution consiste à mettre directement dans la mémoire vive (RAM) du serveur le dossier de cache. Ce mécanisme permet de gagner quelques précieuses millisecondes dans le temps de chargement.

C’est une pratique courante qu’on limite au fichiers de faible importance. En effet, un redémarrage du serveur provoque la suppression de tout le contenu présent dans la RAM. On appelle cela l’absence de persistance.

Étant régénérés automatiquement la perte des fichiers de cache est sans gravité.

Comment  fait-on en pratique ?

Nous allons tout simplement créer un volume tmpfs puis le monter sur notre serveur.

Tmpfs est un système de fichiers qui vient directement se loger dans la mémoire vive, prévu initialement pour les fichiers temporaires (tmp) comme son nom l’indique.

Attention, les commandes suivantes nécessitent un accès SSH et des privilèges root.

Voici la commande :

mount -t tmpfs -o size=1G tmpfs /monsite/wp-content/cache/wp-rocket

Mount pour créer classiquement un point de montage.

  • -t pour spécifier le type de dossier
  • -o pour préciser les options avec notamment size pour lequel j’alloue 1 Giga. J’aurais pu mettre 512M pour 512 Mega.

L’option de taille est à personnaliser en fonction de la RAM disponible sur votre serveur.

Attention, pensez à bien indiquer le chemin complet de votre dossier. Ici , nous sommes dans l’hypothèse où notre site serait stocker directement à la racine de notre serveur.

Le dossier de cache sera monté de façon temporaire seulement et ne sera pas monté au prochain redémarrage.

Pour le monter automatiquement, il suffit de modifier le fichier fstab (/etc/fstab) et d’ajouter :

tmpfs /monsite/wp-content/cache/wp-rocket tmpfs defaults,size=1G 0 0
Attention : pensez à bien modifier le répertoire et la taille allouée et voilà.

À propos de

WP Rocket cofounder, I love Startups, Coffee, Italian Food and Python (not necessary in that order).

2 commentaires

Commenter

Bonjour,
Je suis en mutualisé chez ovh, comment réalise t-on cette manipe ou plutôt, cette manipe est-elle réalisable en mutualisé ?
Merci

@Guillaume : Cette astuce est possible uniquement sur des serveurs dédiés et non mutualisés. Vous n’avez pas ce genre d’accès sur un mutualisé.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs requis sont indiqués par des *