[Admin-ml] du et df sont dans un bateau...

Fabien COMBERNOUS fcombernous at kezia.com
Jeu 18 Juin 16:40:36 CEST 2009


Matthieu Brunet wrote:
>
> Le 18 juin 09 à 14:27, Matthieu Brunet a écrit :
>
>> Bonjour tout le monde,
>>
>> Je suis un petit peu hors sujet, mais c'est comme qui dirait une 
>> urgence.
>> J'ai un beau serveur web mutualisé/virtuel chez nexen, avec 5GO 
>> d'espace disque. Il se remplissait dangereusement, parce que ma 
>> rotation de log ne marchait pas. J'ai donc rôté mes logs, et j'ai 
>> théoriquement gagné 1,5GO d'espace libre, en tous cas, c'est ce que 
>> me dit  "du -s /*". Mais "df" continue à me dire que mon disque est 
>> quasi plein.
>> Apparemment, tout ce que j'efface avec rm se voit immédiatement dans 
>> df. Mais quand je gzip un log, l'espace pris par le document avant 
>> gzipage est toujours vu par df
>> A noter que quand df dit que le disque est plein, les applis cessent 
>> de fonctionner. Donc plus de mail, plus de mysql, etc. trop génial.
>>
>> Une idée ?
>
> bon, apparemment, d'après le support technique de Nexen, c'était des 
> descripteurs de fichiers qui étaient restés ouverts. Ils m'ont donc 
> redémarré la machine (argl), et tout est rentré dans l'ordre.

Si leur hypothèse est vraie, vu ce que tu décris c'est possible, nul 
besoin de rebooter.
Qui plus est, si c'est bien un soucis de nombre de descripteurs de 
fichier qui a atteint le maximum, tu vas probablement te retrouver dans 
le même cas un de ces jours. Rebooter ne résoud pas le soucis, il le 
repousse plus ou moins longtemps.

Il te faut agrandir la limite supérieure.
Tu commences par faire un 'cat /proc/sys/fs/file-max' , ou bien 'sysctl 
fs.file-max'
Puis, tu multiplies par deux le chiffre. Disons que tu obtiens le chiffre n.
Il suffit alors de faire 'echo "n" > /proc/sys/fs/file-max'

Cela te fait la modification à chaud, sans rebooter ...

Ensuite, il faut rendre cette modification applicable au boot de la machine.
'echo "fs.file-max = n" >> /etc/sysctl.conf'

Note 1 : Dans ce mail les commandes sont mises entre ', mais ne sont pas 
à utiliser dans le terminal. C'est juste pour bien les séparer du reste 
du texte.
Note 2 : Attention à bien mettre >> (double >) et non le simple >. Sinon 
tu écrases le fichier déjà existant.

GNUment,
-- 
*Fabien COMBERNOUS*
/unix system engineer/
www.kezia.com <http://www.kezia.com/>
*Tel: +33 (0) 467 992 986*
Kezia Group



Plus d'informations sur la liste de diffusion Admin-ml