Переполнение inodes

Автор: Aport Понедельник, Февраль 2nd, 2015 Нет комментариев

Рубрика: MySQL

Копался я как-то на серваке по одной проблеме и решил посмотреть в файле /var/log/syslog и увидел, что там с бешеной скоростью начала появляться ошибка:

Apr 7 16:42:35 isp kernel: [13132459.285950] EXT4-fs warning (device md2): ext4_dx_add_entry: Directory index full!

загуглил ошибку и понял, что видимо не хватает инод (файлов), давайте проверим это:

# df -i
Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/md2             67108864 53832986 13275878   81% /
...

Так и есть, видите: всего 67 млн., используется 53 млн., и осталось 13 млн, и считается, что этого мало, поэтому надо удалять ненужные, старые файлы, другими словами нужно почистить директории-помойки.

Найти папки с большим количеством файлов можно так:

find <точка монтирования файловой системы> -type d | ( while read A; do B=`ls -l «$A» | wc -l`; if [ "$B" -gt 12345 ] ; then echo $B $A; fi ; done)

точка монтирования файловой системы — например корень / или /my/dir/

12345 — это условие проверки, если кол-во файлов больше этого числа, то показать путь к директории, чтобы потом можно было почистить эту директорию.

Лично у меня таких директорий оказалось очень много, и в некоторых, файлов было более 2 млн ( одна из них /my/dir/mod-tmp ).

Как оказалось почистить такую директорию не просто, но лично я чистил директории ночью так:

cd /my/dir
mv mod-tmp mod-tmp_del
mkdir mod-tmp
chown www-data:siteuser mod-tmp
chmod u=rwX,g=rwX,o= mod-tmp
find mod-tmp_del/ -type f -delete

Скажу честно, через несколько часов команда find завершается с ошибкой, и ее нужно запускать заново, и так до тех пор, пока директория не будет пуста. Либо, воспользоваться командой:

ls | xargs -n 97 rm &

p.s. если у Вас проблема в папке mod-tmp, то после процессов очистки, в php.ini настроить на свое усмотрение раздел по сессиям:

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

удачки.

 

Источник: yapro.ru

Оставить комментарий

Чтобы оставлять комментарии Вы должны быть авторизованы.

Похожие посты