9 votes

"Quota de disque dépassée" lors de l'écriture dans /tmp, mais beaucoup d'espace disponible (linux)

J'ai un VPS. Il est géré avec le tristement célèbre parallels plesk.

aujourd'hui j'ai commencé à voir des messages (d'abord via wordpress, mais aussi à partir de la ligne de commande shell), disant: "Quota disque dépassé".

user@machine:~$ echo aaa > /tmp/aaa
-bash: /tmp/aaa: Quota disque dépassé

mais il y a beaucoup d'espace sur la machine, et une seule partition.

user@machine:~$ df -h
Système de fichiers      Taille  Utilisé Disponible Uti% Monté sur
/dev/vzfs                 100G   24G    77G      24% /

J'ai supprimé tous les fichiers de /tmp/* mais toujours rien.

Je ne sais rien de "vzfs", peut-être que c'est le coupable?

Qu'est-ce qui aurait pu mal tourner? et comment réparer ça?

Solution!

(si vous N'UTILISEZ PAS Parallels Plesk, consultez la réponse de @Adalee)

Voir la solution de @deltik, pertinente pour le système de Parallels, comme dans mon cas.

df -i m'a donné immédiatement un nombre ridicule d'index : 18,446,744,069,620,218,961 ce qui est insensé pour un site wordpress.

j'ai exploré davantage et j'ai trouvé la file d'attente de qmail pleine d'index (pleine des tentatives de hackers d'utiliser ma machine pour spammer, et des réponses d'échec)

réparer qmail n'est pas pertinent ici, mais ma solution l'est :

  1. arrêté le service de qmail
  2. je n'ai pas pu télécharger qmhandle sur le système surquota, alors j'ai dû
  3. extraire et télécharger le script sur un autre site web,
  4. supprimer la file d'attente avec cette commande:
  5. perl <(wget -O - http://link.to.my/script.pl) -D

de cette manière, le script s'exécute directement depuis le web (ce qui n'est pas une pratique sûre, mais j'ai mis le script là moi-même), avec des options en ligne de commande.

merci @deltik d'avoir su et rapidement reconnu cette configuration particulière sur place, et fourni des moyens pour diagnostiquer davantage !!!

15voto

Roo Points 21

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.

5voto

Adalee Points 372

"Le quota disque dépassé" ne signifie pas qu'il n'y a pas d'espace disponible sur votre disque, mais que vous n'êtes pas autorisé à utiliser autant d'espace.

En général, les quotas sont des limites fixées par l'administrateur - le nombre maximum de processus que vous pouvez exécuter, combien d'espace vous pouvez occuper, combien de fichiers vous pouvez avoir, etc. Les quotas de disque peuvent être définis pour le nombre maximum d'inodes et de blocs disque.

Essayez d'exécuter quota et quota -g (alternativement, vous pouvez exécuter repquota -u et repquota -g) pour voir si votre utilisateur est limité de cette manière et comment. Si oui, vous pouvez modifier ces quotas avec la commande edquota ou les désactiver avec la commande quotaoff. Vous devrez peut-être vous connecter en tant que root pour cela, en fonction de vos paramètres.

Ce site propose quelques exemples sur la façon de travailler avec les quotas et contient également des liens vers les pages de manuel des commandes utiles.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X