Ответ
За годы администрирования серверов я выработал подход к решению типовых инцидентов.
Топ-5 частых проблем и алгоритм их решения:
-
No space left on device(закончилось место на диске).- Диагностика:
df -h— смотрю, какая файловая система заполнена. - Поиск «тяжелых» директорий:
du -sh /var/* | sort -rh | head -10. - Типовые причины и решение:
- Логи приложения: Ротация и очистка (например,
logrotate). - Docker: Очистка неиспользуемых образов и контейнеров:
docker system prune -af. - Кэш пакетного менеджера:
apt cleanилиyum clean all.
- Логи приложения: Ротация и очистка (например,
- Диагностика:
-
Permission denied(ошибка прав доступа).- Проверяю пользователя и группу:
ls -la /path/to/file. - Исправляю:
chown appuser:appgroup /path/to/fileиchmod 750 /path/to/file. - Важно: Если права корректны, проверяю SELinux/AppArmor:
# Временное отключение SELinux для диагностики setenforce 0 # Просмотр логов SELinux ausearch -m avc -ts recent | audit2why
- Проверяю пользователя и группу:
-
Address already in use(порт занят).- Ищу процесс:
ss -tulnp | grep :<PORT>илиlsof -i :<PORT>. - Принимаю решение: завершить процесс (
kill -9 <PID>) или перенастроить приложение на другой порт.
- Ищу процесс:
-
Высокая нагрузка на CPU или память.
- Смотрю топ процессов:
topилиhtop. - Анализирую: если это Java-процесс — проверяю дампы и настройки JVM; если системный процесс — смотрю
iotopна предмет нагрузки от I/O. - Для анализа использования памяти важно понимать разницу между used и available в выводе
free -h. Кэш памяти (buff/cache) Linux отдает приложениям по необходимости.
- Смотрю топ процессов:
-
Недостаток inodes (файловая система полна, но
df -hпоказывает свободное место).- Проверяю:
df -i. - Ищу директории с огромным количеством мелких файлов (часто — сессии, кэш, временные файлы):
# Найти директории с большим количеством файлов find / -xdev -type f | cut -d "/" -f 2 | sort | uniq -c | sort -rn | head -20
- Проверяю:
Профилактика: Я настраиваю мониторинг (Prometheus) на ключевые метрики: использование диска, inodes, память, нагрузку. Alertmanager отправляет алерт при достижении пороговых значений (например, >85% использования диска), что позволяет решать проблему проактивно.