Maison > Article > Tutoriel système > Comment résoudre le problème lorsque le dossier temporaire est soudainement plein ? Analyse du problème que le dossier tmp occupe à 100%
L'éditeur de PHP Apple analysera pour vous "Comment résoudre le problème que le dossier temp soit soudainement plein ? Analyse du problème que le dossier tmp occupe à 100%". Lorsque le dossier temp est soudainement plein et que le dossier tmp est occupé à 100 %, cela peut être dû à un trop grand nombre de fichiers temporaires dans le système ou l'application. Les solutions incluent le nettoyage manuel des fichiers temporaires, la vérification s'il existe des erreurs de programme empêchant la suppression des fichiers, la modification des chemins de stockage des fichiers temporaires, la définition de politiques de nettoyage automatique, etc. En prenant les mesures appropriées, vous pouvez résoudre efficacement le problème du dossier temporaire occupant trop d'espace disque et assurer le fonctionnement normal du système.
Le dossier Tmp occupe 100 % de l'analyse des problèmes
1. Vérifiez l'utilisation du disque via df -h et constatez que /dev/vdb1 (chemin de stockage du fichier) occupe 42 %, ce qui est suffisant mais le dossier /tmp occupe 100 % ; .
df -h
Une partie de l'espace a été libérée ici, donc /tmp occupe 91%.
2. Entrez le chemin /tmp pour vérifier l'occupation. Il s'avère que l'occupation du fichier n'est que de 5,7 Mo et que l'espace total réel est de 16 Go.
cd /tmp
3. Puisque tmp est un dossier temporaire, le fichier est automatiquement supprimé après utilisation. On suppose que le fichier est supprimé mais que l'espace n'est pas libéré. Vérifiez l'état du fichier via lsof /tmp et constatez qu'un grand nombre de fichiers ont été supprimés mais sont toujours occupés par des processus, ce qui entraîne l'impossibilité de libérer de l'espace.
lsof /tmp
4. Grâce à la capture d'écran ci-dessus, le PID de processus du fichier occupé est 3860289, qui est un projet Springboot non déployé. Dans des circonstances normales, le redémarrage du projet peut le libérer, mais il s'agit actuellement d'un projet en ligne et son redémarrage affectera l'utilisation des utilisateurs. Il est donc nécessaire de libérer de l’espace sans redémarrer.
Résoudre le problème
1. Interrogez les informations du fichier fd du processus occupant le fichier ls -i /proc/{process PID}/fd Par exemple :
ls -i /proc/3860289/df
.2. Passez >/proc/{Process pid}/fd/{File fd} Libérez l'espace occupé (File fd est le premier chiffre dans la partie rouge dans l'image ci-dessus), par exemple :
>/proc /3860289/fd/999
3. La libération par lots de l'occupation des fichiers peut être résolue en écrivant des scripts shell Par exemple : supprimer les fichiers avec le pid 3860289 et le fd 500 à 1000.
#! /bin/bash
for i in {500..1000}
do
/proc/3860289/fd/$i
done
4. Ce qui précède est occupé par la suppression temporaire de fichiers. Enfin, le problème. peut être résolu en redémarrant l'application kill -9 {PID}
kill -9 3860289
.Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!