Ответ
Первым делом я проверяю текущее использование inodes и локализую проблему.
1. Диагностика:
# Проверить использование inodes по всем точкам монтирования
df -i
# Найти директории с наибольшим количеством файлов
sudo find / -xdev -type f | awk -F/ '{print $2}' | sort | uniq -c | sort -rn | head -20
2. Основные причины и решения:
- Множество мелких файлов (логи, кэш, сессии): Частая причина — неуправляемые логи приложения или файлы сессий в
/tmp. Решение — найти и очистить или заархивировать.# Часто виновники — директории кэша и временные файлы sudo du --inodes -s /var/cache/* /tmp/* /var/log/* 2>/dev/null | sort -rn - Удалённые файлы, удерживаемые процессами: Файл удалён, но процесс его ещё использует, занимая inode.
sudo lsof +L1 | grep deleted # Решение — перезапустить или корректно завершить процесс - Исчерпание inodes на Docker-хосте: Множество остановленных контейнеров, образов и томов.
docker system df # Очистка docker system prune -a --volumes
3. Долгосрочные меры:
- Настроить мониторинг использования inodes (например, в Prometheus с алертами в Alertmanager).
- Внедрить политики ротации и очистки логов (logrotate).
- Если проблема системная — рассмотреть пересоздание файловой системы с большим числом inodes или добавление нового диска с последующим переносом данных.