Retour : Page Principale > sommaire aide > sommaire aide-mémos

Espace disque libre mais disque plein


Si la machine se plaint d'être pleine mais que df indique qu'il reste de l'espace disque libre alors il faut vérifier la disponibilité d'inodes avec df -i.

Diagnostiquer la panne

Un site est pété, l'autocomplétion dans le console indique qu'il n'y a plus de place, impossible de créer un nouveau fichier
df indique qu'il reste plein de place
df -i indique qu'il n'y a plus d'inodes

RĂ©parer

Lancer ça dans le home (ou même à la racine mais plus lent) pour trouver les dossiers consommant le plus d'inodes :
find . -xdev -type f | cut -d "/" -f 2 | sort | uniq -c | sort -n

Ne pas hésiter à relancer dans chaque dossier pour affiner la recherche.

Celle lĂ  aussi est cool (pour Ă©viter les montages NFS, coucou grosdur) :
for i in `find / -mount -type d `; do echo `ls -a $i | wc -l` $i; done | sort -n


Si il y a effectivement des milliers de fichiers de session alors rm refusera de fonctionner, c'est trop pour lui. Il faut la jouer comme ça :
find . -type f -name 'sess*' -delete


RĂ©cap


Alors voilà, l'autre jour (8 septembre 2017) on s’aperçoit que le site d'ODS est cassé.
En navigant sur Orobanche, celui-ci semble indiquer qu'il n'a plus d'espace disque. Hop, on ajoute 2Go depuis Proxmox en cliquant sur Resize disk :
image Capture_du_20170919_140259.png (45.7kB)


Bon 3 jours plus tard le problème apparait de nouveau mais cette fois on voit bien que l'espace disque n'est pas saturé, avec un peu moins de 2Go restant c'est improbable.

Il se trouve que la config de base de PHP sous Debian prévoit de garder les sessions ad vitam æternam ce qui couplé à des applications vomissant trouzemille sessions par visite à conduit à une quantité phénoménale de fichiers inutiles occupant tous les inodes disponibles.

Mesures


RĂ©activer session.gc_probability dans le php.ini de FPM sur Orobanche.
Supprimer toutes les sessions de /home/gentiana/_sessions et de /home/referentiels/_sessions
Exclure le répertoire _sessions des sauvegardes
Ajout d'un cron sur sycomore pour vider les dossiers _sessions :
0 6 * * * find /home/telanet/_sessions -type f -name 'sess*' -delete
15 6 * * * find /home/floristic/_sessions -type f -name 'sess*' -delete