disk quota exceeded или как очистить Inodes в debian

Впс на Debian 6 стала жестко тормозить.

Перезагрузка ничего не изменила. В ISPmanager при изменении параметров стала вылетать ошибка:

disk quota exceeded

Проверяем место на жестком:

df -h
#Filesystem            Size  Used Avail Use% Mounted on
#/dev/simfs            100G  4.2G   96G   5% /
df -i
#Filesystem            Inodes   IUsed   IFree IUse% Mounted on
#/dev/simfs            700000   700000  0     100%    /

Вот и проблема, все inodes заняты.
Inodes — это количество файлов разрешенное создавать на диске.
Чтобы подсчитать количество и найти папку воспользуемся командами:

cd /
find . -xdev -type f | cut -d "/" -f 2 | sort | uniq -c | sort -n
#      1 .codepage
#      1 home
#      2 backupvse
#      2 tmp
#     10 root
#     88 bin
#     91 sbin
#    237 lib
#    840 etc
#  20580 usr
# 700000 var

Папка var. Можно двигаться постепенно cd var повторяя команду выше, но скорее всего это папка
/var/www/имя_пользователя/data/mod-tmp (либо /var/www/имя_пользователя/data/bin-tmp).
Идем

cd /var/www/имя_пользователя/data

Повторяем команду и убеждаемся в что mod-tmp забита по полной сессиями.
Для очистки папки mod-tmp:

find /var/www -wholename "*/data/mod-tmp/*" -type f -cmin +360 -print0 | xargs -r -0 rm
find /var/www -wholename "*/data/bin-tmp/*" -type f -cmin +360 -print0 | xargs -r -0 rm #(если есть папка bin-tmp)

-cmin +360 — время, все файлы старше которого будут удалятся.
Update 10.11.2015
Аналогичным образом чистятся inodes, если сайты лежат не в /var/www/имя_пользователя/data, а в папке /home/имя_пользователя/data

find /home -wholename "*/data/mod-tmp/*" -type f -cmin +360 -print0 | xargs -r -0 rm
find /home -wholename "*/data/bin-tmp/*" -type f -cmin +360 -print0 | xargs -r -0 rm

Ждем завершения. Процесс довольно длительный, так что попейте чая))
После завершения смотрим:

df -i
#Filesystem            Inodes   IUsed   IFree IUse% Mounted on
#/dev/simfs            700000   68769  631231   10% /

Чтобы такого не повторялось идем в /etc/php5/apache2/php.ini и включаем авто удаление сессий.
Однако в связи с особенностями системы безопасности, включение этих параметров допустимо при работе веб-сервера apache в режиме mpm_itk или mod_fcgi.
Посмотреть режим работы можно с помощью команды:

apachectl -M | grep mpm
# mpm_itk_module (static)
Syntax OK

Если apache у вас в режиме mpm_itk (как перейти на такой режим работы читать в статье переводим Apache в режим mpm-ITK + ISPmanager) или mod_fcgi, то

session.gc_probability = 1
session.gc_divisor = 1000
session.gc_maxlifetime = 1440

Если apache у вас в режиме mpm_prefork, то

session.gc_probability = 0
session.gc_divisor = 1000
session.gc_maxlifetime = 1440

и делаем рестарт apache

/etc/init.d/apache2 restart

Профит!

Скажите свое мнение

ваш email не публикуется. обязательно *

;-) :yawn: :whew: :toivo: :tmi: :time: :thinking: :talking: :sweating: :swear: :sun: :star: :smoke: :smirk: :sleepy: :skype: :shock: :shake: :rofl: :rain: :punch: :puke: :poolparty: :pizza: :phone: :party: :oops: :nod: :no: :ninja: :neutral: :nerd: :music: :muscle: :mrgreen: :movie: :mooning: :mmm: :middlefinger: :makeup: :mail: :mad: :lol: :lipssealed: :kiss: :itwashtme: :inlove: :idea: :hi: :heidy: :heart: :headbang: :happy: :handshake: :giggle: :fubar: :flower: :evilgrin: :emo: :dull: :drunk: :drink: :doh: :devil: :dance: :cry: :cool: :coffie: :clapping: :cash: :call: :cake: :bug: :brokenheart: :bow: :blush: :beer: :bear: :bandit: :arrow: :angry: :angel: :^) :???: :?: :-| :-o :-P :-D :-) :-( :!:

 

*

code

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.