У меня есть VPS. Управляется с помощью пресловутых параллелей plesk.
сегодня я начал видеть сообщения (сначала через wordpress, но также и из командной строки), говорящие: «Превышена квота диска».
user@machine:~$ echo aaa > /tmp/aaa
-bash: /tmp/aaa: Disk quota exceeded
но на машине много места и только 1 раздел.
user@machine:~$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vzfs 100G 24G 77G 24% /
Я удалил все файлы из / tmp / * но все же.
Я ничего не знаю о "vzfs", может быть, это виновник?
Что могло пойти не так? и как можно это исправить?
Решение!
(если вы НЕ используете Parallels Plesk, см. ответ @ Adalee)
Смотрите решение @deltik, относящееся к системе Parallel, как в моем случае.
df -i немедленно дал смешное количество inode: 18,446,744,069,620,218,961, что безумие для сайта WordPress.
Я также исследовал и обнаружил, что очередь qmail полна inode (она полна попыток некоторых хакеров использовать мою машину для рассылки спама и ответов об ошибках)
исправление qmail здесь не актуально, но мой обходной путь уместен:
- остановил службу qmail
- я не смог загрузить qmhandle в систему превышения квоты, поэтому мне пришлось
- извлечь и загрузить скрипт на другой сайт,
- удалите очередь с помощью этой команды:
- perl <(wget -O - http://link.to.my/script.pl ) -D
таким образом, скрипт запускается прямо из Интернета (что небезопасно, но я сам поместил скрипт там) с параметрами командной строки.
спасибо @deltik за знание и своевременное распознавание этой специфической настройки на месте и предоставление средств для дальнейшей диагностики !!!
vzfs
(виртуальная файловая система OpenVZ) может быть причиной. Я видел много провайдеров OpenVZ, которые продают невероятно дешевые серверы, но устанавливают невероятно глупые ограничения для них.Ответы:
У вас есть файловая система VZFS, что означает, что ваш VPS является виртуальной машиной Parallels Virtuozzo. В Virtuozzo хостинг-провайдер может устанавливать ограничения по многим параметрам, в том числе по распределению, которое вы получаете с VZFS.
Причина: из Inodes (чаще всего)
После нескольких лет работы с сотнями клиентов Virtuozzo VPS, у которых возникла проблема с невозможностью создания файлов, даже несмотря на то, что свободного места оказалось достаточно, подавляющее большинство из них достигло предела своих инодов. Запустите эту команду, чтобы увидеть распределение inode (
Inodes
), используемые inode (IUsed
), оставшиеся inode (IFree
) и процент используемых inode (IUse%
):100% -ное использование inode происходит очень часто. Общие причины в моем опыте:
session.gc_maxlifetime
на более чем сто летПоиск проблемы
Если вы обнаружите, что у вас мало или нет inode, но вы не знаете, где находится большинство из них, у меня есть одна строчка Bash, которая ищет текущий каталог и подсчитывает inode с глубиной папки 1:
Вы можете продолжать изменять текущий рабочий каталог, начиная с
/
тех пор, пока не найдете виновника, исчерпавшего свое выделение inode.объяснение
Ваш VPS находится в файловой системе VZFS, которая является частью Parallels Virtuozzo (не OpenVZ, который похож и основан на той же технологии, но OpenVZ не будет использовать VZFS).
Благодаря тому, что Virtuozzo хранит файлы в VZFS, иноды часто ограничены в большей степени, чем в других файловых системах, таких как ext4 или XFS. Хост отслеживает все эти файлы, и хостинг-провайдеру было бы полезно не допустить, чтобы один VPS занимал сотни миллионов инодов. В результате хостинг-провайдер может установить низкий предел инодов, например, 1 000 000 инодов.
После многих лет работы с сотнями клиентов, которые исчерпали свое распределение inode в Virtuozzo, эти «таинственные» проблемы с дисковой квотой меня больше не удивляют.
Причина: другие ограничения Virtuozzo
У очень небольшого процента клиентов Virtuozzo VPS, с которыми я работал, были проблемы с файловой системой, потому что они выходили за другие пределы. Вы можете увидеть некоторые (но не все) ограничения с помощью этой команды:
Поиск проблемы
Если
failcnt
столбец имеет значение больше 0 илиheld
значение столбца равно соответствующемуlimit
значению, вы достигли предела.Вы можете посмотреть, что каждый параметр есть в вики OpenVZ здесь . Параметр может быть «первичным», «вторичным» или «вспомогательным».
Вам следует обратиться к вашему хостинг-провайдеру за дополнительной помощью, если вы обнаружите, что не можете уменьшить
held
количество для лимита, которого достиг ваш VPS.Этот ответ может быть значительно расширен в зависимости от того, какие бобы были использованы максимально, так как разные пределы вызывают разные симптомы.
Причина: лимиты уменьшены после удара
Что касается
/proc/user_beancounters
илиdf -i
, иногда, системный администратор Virtuozzo может уменьшить значениеlimit
параметра нижеheld
значения.Например, если исходный предел
diskinodes
параметра составлял 1 500 000, и вы достигли этого предела, тогда кто-то из вашего хостинг-провайдера установит для вашего предела инода значение 1 000 000, вы увидите странный отчет об инодах,df -i
который не имеет смысла.С вашей стороны вы можете увидеть неоправданно большое число, например, 18,446,744,069,620,218,961 .
Я считаю, что это провокационное поведение со стороны хостинг-провайдера, особенно если они не сообщают вам, потому что необычные значения, которые вы видите, противоречат знаниям суперпользователей, которые не имеют опыта работы с Virtuozzo / OpenVZ, что приводит к вводящим в заблуждение совет ( пример , другой пример ).
Поиск проблемы
Свяжитесь с вашим хостинг-провайдером. Покажите им, что вы нашли, и работайте с ними, чтобы ваши бобы были ниже предела.
Если они откажутся вам помочь, откажитесь от своего хостинг-провайдера и найдите другого, который не использует виртуализацию Virtuozzo / OpenVZ. На виртуализацию KVM, виртуализацию VMware, виртуализацию Xen или серверы с открытым исходным кодом будет распространяться гораздо меньше ограничений, чем в Virtuozzo / OpenVZ.
объяснение
Возможно, ваш хостинг-провайдер проводил аудит или отвечал на оповещение и обнаружил, что ваш VPS использовал слишком много определенного ресурса (почти всегда предел inode, который является
diskinodes
параметром на их конце).Неопытный администратор Virtuozzo в хостинг-провайдере считает, что он может решить эту проблему, уменьшив ограничение до уровня, который ниже фактического использования ресурсов. В случае inode у вас может быть более низкое распределение, например, 1 000 000, даже если фактическое текущее использование может быть выше, например, 1 500 000.
Администратор Virtuozzo в своей панели управления будет видеть ваше фактическое использование и новый лимит, но вы увидите фиктивные числа, которые, возможно, очень неоправданно высоки из-за способа виртуализации Virtuozzo.
Небрежный администратор Virtuozzo не сообщит вам об этом изменении, поэтому вам следует обратиться к вашему хостинг-провайдеру, если это произойдет с вами.
источник
«Превышена квота на диск» не означает, что на вашем диске нет свободного места, но вы не можете использовать столько места.
В общем, квоты - это некоторые ограничения, установленные администратором - максимальное количество процессов, которые вы можете запустить, сколько места вы можете занять, сколько файлов вы можете иметь и т. Д. Дисковые квоты могут быть установлены для максимального числа inode и дисковых блоков.
Попробуйте запустить
quota
иquota -g
(или, наоборот, вы можете запуститьrepquota -u
иrepqouta -g
), чтобы увидеть, ограничены ли ваш пользователь таким образом и как. Если да, вы можете изменить эти квоты с помощьюedquota
или отключить их с помощьюquotaoff
команды. Для этого вам может потребоваться войти в систему как пользователь root, в зависимости от ваших настроек.Этот сайт содержит несколько примеров работы с квотами, а также содержит ссылки на справочные страницы с полезными командами.
источник