Les inodes perdues ! Cette semaine, j’ai eu droit à un problème particulier sur le serveur : alors que rien dans la configuration des services n’a été changé, je me suis rendu compte que WordPress ne réagissait pas comme d’habitude.
Les symptômes les plus visibles sont la lenteur de l’application, l’impossibilité de mettre à jour ou corriger un article ou encore ajouter des tags à un nouvel article.
J’avais déjà connu cet état lors d’un crash de la base SQL il y a maintenant quelques années donc je me suis dit que j’allais commencer par redémarrer Apache puis réparer la base de données.

Suppression des instances Apache et redémarrage du service
Dès le lancement de la session SSH, il est évident que quelque chose ne tourne pas rond. Après le message de bienvenue, un message d’erreur apparaît :
/usr/bin/xauth: error in locking authority file /root/.Xauthority
Et en voulant arrêter Apache, on obtient:
Restarting web server: apache2. [error]
There are processes named 'apache2' running which do not match your pid
Code language: JavaScript (javascript)
On commence donc par régler ce problème et on regarde quels sont les PID utilisés par Apache:
pidof apache2
La commande pidof
nous retourne toute une liste de pid:
32691 31385 31154 30917 30663 29150 27368 24820 24563 17531 15227 14235 13559 13064 11028 10906 10256 9156 9144 9042 8855 8542
On met fin à toutes ces instances avec un simple kill -9
:
kill -9 32691 31385 31154 30917 30663 29150 27368 24820 24563 17531 15227 14235 13559 13064 11028 10906 10256 9156 9144 9042 8855 8542
Une fois toutes les instances d’Apache supprimées, il nous est de nouveau possible de redémarrer le service normalement:
service apache2 restart
Ménage dans l’espace disque et le nombre d’inodes disponibles
Au moment de réparer les tables de la base de données, rebelote, erreur :
No space left on device (error 28)
On commence par un petit ménage dans les paquets obsolètes, qui ne résoudra pas grand-chose:
apt-get autoclean && apt-get autoremove
Code language: JavaScript (javascript)
Je tente un simple df
pour vérifier si les disques sont pleins :
df
mais visiblement, non, il reste bien de la place :
Filesystem Size Used Avail Use% Mounted on
/dev/root 9.8G 4.4G 5.0G 47% /
devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs 390M 408K 390M 1% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 780M 0 780M 0% /run/shm
/dev/sda2 683G 531G 118G 82% /home
Code language: PHP (php)
Je tente alors un df -i
pour vérifier le nombres d’inodes disponibles :
df -i
Un nœud d’index ou inode (contraction de l’anglais index et node) est une structure de données contenant des informations à propos d’un fichier stocké dans les systèmes de fichiers Linux/Unix.
À chaque fichier correspond un numéro d’inode (i-number) dans le système de fichiers dans lequel il réside, unique au périphérique sur lequel il est situé.

Les inodes contiennent notamment les métadonnées des systèmes de fichiers, et en particulier celles concernant les droits d’accès.
Les inodes sont créés lors de la création du système de fichiers. La quantité d’inodes (généralement déterminée lors du formatage et dépendant de la taille de la partition) indique le nombre maximum de fichiers que le système de fichiers peut contenir.
Dans notre cas, catastrophe, il ne reste quasiment plus d’inodes disponibles !
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/root 640K 640K 6 100% /
devtmpfs 487K 1.5K 486K 1% /dev
tmpfs 488K 864 487K 1% /run
tmpfs 488K 10 488K 1% /run/lock
tmpfs 488K 2 488K 1% /run/shm
/dev/sda2 44M 37K 43M 1% /home