Posts From Category: forge

Les fichiers temporaires de Snappy

Petite alerte ce matin d’un agent AWS, l’une de nos machines manque d’espace disque.

Si vous voulez passer une mauvaise journée, essayons donc d’attendre que votre serveur atteigne les 100%, vous verrez c’est sympathique de plus pouvoir se connecter en SSH.

Ni une ni deux nous cherchons les dossiers les plus volumineux à l’aide de la commande du :

du -h --max-depth=1 | sort -hr | head -n 10

En étudiant le résultat de la recherche, nous ne sommes rendu compte que le dossier /tmp présent à la racine du serveur faisait plus de 10 GO … soit plus de la moitié des capacités du disque de la machine.

Dans ce dossier, nous nous sommes retrouvés face à une montagne de fichier ayant un pattern similaire : “knp_snappy651be73555b004.69764999.html”.

Après téléchargement, il s’avère que les coupables sont des fichiers temporaires créés par le package laravel-snappy que nous utilisons pour générer des PDF.

Visiblement, dans certaines circonstances, le package n’est pas en mesure de supprimer ses propres fichiers temporaires … ce qui au fil des mois remplira votre serveur de plusieurs GO de fichiers inutiles, jusqu’à l’implosion.

Un rapide coup de suppression à l’aide d’un find :

find /tmp -name "knp_*.html" -type f -delete

Attention à vous, laravel-snappy n’est qu’un wrapper de KnpLabs/snappy qui lui-même encapsule le package wkhtmltopdf, un standard de l’industrie que vous utilisez probablement sans le savoir.

Le problème que nous avons rencontré n’est peut-être pas directement lié à laravel-snappy mais à l’une de ses dépendances, bon courage à vous.

Read More

Augmenter la RAM d'un serveur Mysql sur Laravel Forge

La configuration de votre serveur MySQL sur Laravel Forge se trouve dans un fichier “my.cnf” :

sudo vim /etc/mysql/my.cnf

Si vous avez perdu votre password sudo d’une machine sur Forge, cherchez dans votre boîte mail un certain “Forge: Server ({name server}) Provisioned”, vous me remercierez plus tard.

Désormais, éditez le fichier my.cnf et modifier la valeur en MO de la clé innodb_buffer_pool_size :

[mysqld]
default_authentication_plugin=mysql_native_password
skip-log-bin
innodb_buffer_pool_size = 400M

La clé innodb_buffer_pool_size est le paramètre de configuration de MySQL qui détermine la quantité de mémoire allouée pour mettre en cache les données et les index, vous améliorez les performances en accélérant les accès aux données fréquemment utilisées.

Après avoir sauvegardé, redémarrer MySQL depuis le panel de configuration de votre serveur sur forge.

Pour finir, vous pouvez lancer cette requête sur votre base de données pour confirmer que la nouvelle valeur est bien prise en compte.

SHOW VARIABLES LIKE 'innodb_buffer_pool_size'; 
// 419430400

La résultat 419430400 est en octets, si vous la convertissez en MO en divisant par (1024 * 1024) vous obtiendrez bien 400MO.

Read More