Vous avez un système de fichiers VZFS, ce qui signifie que votre VPS est une machine virtuelle Parallels Virtuozzo. Dans Virtuozzo, le fournisseur d'hébergement peut définir des limites sur de nombreux paramètres, y compris les allocations que vous obtenez avec VZFS.
La cause : Plus d'inodes (la plus courante)
Après des années de travail avec des centaines de clients VPS Virtuozzo qui ont eu le problème de ne pas pouvoir créer de fichiers, même s'il semblait y avoir beaucoup d'espace libre, la grande majorité d'entre eux avaient atteint leur limite d'inodes. Exécutez cette commande pour voir l'allocation d'inodes (Inodes
), les inodes utilisés (IUsed
), les inodes restants (IFree
), et le pourcentage d'inodes utilisés (IUse%
) :
df -i
Avoir une utilisation de 100% d'inodes arrive souvent. Les causes courantes dans mon expérience :
- Les rebonds des e-mails de spam
- Les e-mails de spam sortants en attente
- Un grand nombre d'e-mails entrants stockés
- Un utilisateur définissant la collecte des ordures de session PHP (
session.gc_maxlifetime
) à plus de cent ans
- Trop de fichiers de cache généraux
- Le cache d'objet activé dans le plugin WordPress W3 Total Cache
- Le journal d'erreurs Magento (un nouveau fichier est généré pour chaque erreur)
- D'autres programmes/scripts mal configurés ou mal conçus qui créent un tas de fichiers et oublient de les supprimer
Dépannage
Si vous constatez que vous manquez d'inodes mais que vous ne savez pas où la plupart d'entre eux se trouvent, j'ai cette ligne de commande Bash qui recherche le répertoire actuel et compte les inodes à une profondeur de dossier de 1 :
for i in $(find $(pwd) -maxdepth 1 -type d | sort); do echo -e "$(find "$i" | wc -l)\t: $(readlink -f "$i")"; done | sort -nr
Vous pouvez continuer à changer le répertoire de travail actuel à partir de /
jusqu'à ce que vous trouviez le coupable qui utilise votre allocation d'inodes.
Explication
Votre VPS est sur un système de fichiers VZFS, qui fait partie de Parallels Virtuozzo (et non d'OpenVZ, qui est similaire et basé sur la même technologie, mais OpenVZ n'utiliserait pas VZFS).
En raison de la façon dont Virtuozzo stocke les fichiers dans VZFS, les inodes sont souvent plus limités que sur d'autres systèmes de fichiers comme ext4 ou XFS. L'hôte trace tous ces fichiers, et il serait avantageux pour le fournisseur d'hébergement de ne pas laisser un seul VPS occuper des centaines de millions d'inodes. Par conséquent, le fournisseur d'hébergement peut définir la limite d'inodes sur une valeur basse, comme 1 000 000 inodes.
Après des années de travail avec des centaines de clients qui ont épuisé leur allocation d'inodes sur Virtuozzo, ces problèmes de quota de disque "mystérieux" ne me surprennent plus.
La cause : Autres limites de Virtuozzo
Un très petite pourcentage des clients de VPS Virtuozzo avec lesquels j'ai travaillé ont rencontré des problèmes de système de fichiers parce qu'ils ont atteint d'autres limites. Vous pouvez voir certaines (mais pas toutes) des limites avec cette commande :
cat /proc/user_beancounters
Dépannage
Si la colonne failcnt
a une valeur supérieure à 0 ou si une valeur de colonne held
est égale à la valeur correspondante de limit
, vous avez atteint une limite.
Vous pouvez rechercher la signification de chaque paramètre sur le wiki d'OpenVZ ici. Un paramètre peut être "primaire", "secondaire" ou "auxiliaire".
Vous devriez contacter votre fournisseur d'hébergement pour obtenir plus d'assistance si vous constatez que vous ne pouvez pas diminuer le nombre held
pour une limite que votre VPS a atteinte.
Cette réponse peut être nettement étoffée en fonction des beans qui ont été maximisés, car différents dépassements de limites entraînent différents symptômes.
La cause : Limites diminuées après avoir été atteintes
En ce qui concerne /proc/user_beancounters
ou df -i
, parfois, un administrateur système Virtuozzo peut diminuer la limite
d'un paramètre en dessous de la valeur held
.
Par exemple, si la limite initiale du paramètre diskinodes
était de 1 500 000 et que vous avez atteint la limite, puis quelqu'un chez votre fournisseur d'hébergement fixe votre limite d'inodes à 1 000 000, vous verrez un rapport d'inodes bizarre à partir de df -i
qui n'a aucun sens.
De votre côté, vous pourriez voir un nombre déraisonnablement grand, comme 18 446 744 069 620 218 961.
Je considère cela comme un comportement malveillant du fournisseur d'hébergement, surtout s'ils ne vous informent pas, car les valeurs inhabituelles que vous voyez contredisent les connaissances des super utilisateurs qui n'ont pas d'expérience avec Virtuozzo/OpenVZ, ce qui peut conduire à des conseils trompeurs (exemple, autre exemple).
Dépannage
Contactez votre fournisseur d'hébergement. Montrez-leur ce que vous avez trouvé et travaillez avec eux pour ramener vos beans tenus en dessous de la limite.
S'ils refusent de vous aider, abandonnez votre fournisseur d'hébergement et trouvez-en un autre qui n'utilise pas la virtualisation Virtuozzo/OpenVZ. La virtualisation KVM, la virtualisation VMware, la virtualisation Xen ou les serveurs bare metal seraient soumis à bien moins de limites que Virtuozzo/OpenVZ.
Explication
Votre fournisseur d'hébergement a peut-être audités ou répondu à une alerte et constaté que votre VPS utilisait trop d'une ressource spécifique (presque toujours la limite d'inodes, qui est le paramètre diskinodes
de leur côté).
Un administrateur inexpérimenté de Virtuozzo au niveau du fournisseur d'hébergement croit qu'ils peuvent résoudre le problème en réduisant la limite à quelque chose de plus bas que l'utilisation réelle de la ressource. Dans le cas des inodes, vous pourriez avoir une allocation plus faible, comme 1 000 000, même si votre utilisation actuelle réelle pourrait être plus élevée, comme 1 500 000.
L'administrateur de Virtuozzo dans son panneau de contrôle verrait votre utilisation réelle et la nouvelle limite, mais vous verriez des nombres bidons qui pourraient être très déraisonnablement élevés en raison de la façon dont Virtuozzo virtualise.
Un administrateur négligent de Virtuozzo ne vous informerait pas de ce changement, c'est pourquoi vous devriez contacter votre fournisseur d'hébergement si cela vous arrive.