Закончились ноды. Как освободить inodes в Linux

Незнаю насколько часто это случается у других пользователей, но у меня уже пару раз было и это настолько мутарная ситуация что я решил записать некоторые советы для ее решения.

В кратце, иноды такой параметр файловой системы который говорит сколько файлов (именно количество ) вы можете создавать.

Во первых когда количество инодов достигает лимита вся система начинает сильно тупить, и не всегда понятно что и в какой момент перестанет работать. Ведь линукс постоянно создает и удаляет файлы а если иноды закончились то создание нового файла запрещена на уровне файловой системы.

У меня всегда с горем пополам получалось зайти в систему. Следующий шаг это собственно проверить использование инодов коммандой:

1
df -i или df -ih
df -i или df -ih

получаем такой примерно ответ:

1
2
3
4
5
6
7
8
9
Filesystem      Inodes  IUsed   IFree IUse% Mounted on<br />
udev            114424    402  114022    1% /dev<br />
tmpfs           117681    646  117035    1% /run<br />
/dev/vda1      1935360 335956 1599404   94% /<br />
tmpfs           117681      1  117680    1% /dev/shm<br />
tmpfs           117681      5  117676    1% /run/lock<br />
tmpfs           117681     18  117663    1% /sys/fs/cgroup<br />
/dev/vda15           0      0       0     - /boot/efi<br />
tmpfs           117681     11  117670    1% /run/user/0
Filesystem      Inodes  IUsed   IFree IUse% Mounted on<br />
udev            114424    402  114022    1% /dev<br />
tmpfs           117681    646  117035    1% /run<br />
/dev/vda1      1935360 335956 1599404   94% /<br />
tmpfs           117681      1  117680    1% /dev/shm<br />
tmpfs           117681      5  117676    1% /run/lock<br />
tmpfs           117681     18  117663    1% /sys/fs/cgroup<br />
/dev/vda15           0      0       0     - /boot/efi<br />
tmpfs           117681     11  117670    1% /run/user/0

Если видно что сумарно мы близки к 100% поздровляю у вас проблеммы, чаще всего это какието сервисы которые создают постоянно файлы но не удаляют их и через какоето время заполняют весь диск, но не размером а количеством файлов

Чтобы найти в каких папках используются больше всего инодов можно воспользоваться коммандой:

1
{ find / -xdev -printf '%h\n' | sort | uniq -c | sort -k 1 -n; } 2>/dev/null
{ find / -xdev -printf '%h\n' | sort | uniq -c | sort -k 1 -n; } 2>/dev/null

Запускайте акуратно она довольно затратна по ресурсам, если у вас уже есть какието предположения где могут быть папки с большим ненужных файлов то лучше очистите их перед запуском, так система будет стабильнее и позволит вам получить ответ этой команды. В ответе вы получите список папок а рядом с ними количество файлов в ней.

Найдите самую большую папку в ней будет проблемма, однако сразу очищать ее не советую, нужно разобраться в причине генерации файлов и можно ли их безопастно удалить. Для начала очистите папки логов и временые папки

У меня в одном случае проблемы были с почтовым сервером который получал задание, создавал файл, а отправить его не мог изза того что был закрыт порт. Так очередь постепенно доросла до гигантских маштабов
Во втором случае была более банальная ситуация, огромное количество файлов сессии веб сервера, которые изза неправельной настройки е удалялись.