У меня есть приложение, работающее на Linux Server. Но сервер внезапно перестал отвечать, но когда я пингуюсь с другой машины на сервер, он разрешал пинговать, но не позволял войти на сервер. Не уверен, почему?
Сценарий:
Теперь проблема в том, что мы не уверены, почему это произошло. Мы пытались изучить /var/log/messages
файл и обнаружил ниже подозрительное сообщение:
kernel: VFS: file-max limit 100000 reached
Может ли кто-нибудь помочь нам, как мы можем проверить, какие / какие процессы приняли это множество дескрипторов? Есть ли какие-нибудь файлы журналов, в которых мы можем узнать, какой процесс открыл столько дескрипторов?
Пожалуйста, дайте мне знать, если потребуется дополнительная информация по этому поводу.
Спасибо
Сообщение указывает, что на машине заканчиваются дескрипторы файлов, проверьте текущее значение и попробуйте увеличить его.
List the current max-limit
#cat /proc/sys/fs/file-max
Чтобы увеличить количество файлов (для всей системы), добавьте следующую строку в свой sysctl.conf (/etc/sysctl.conf)
fs.file-max = 131072
Запустите команду ниже, чтобы перечитать файл конфигурации
sysctl -p
Значение в file-max обозначает максимальное количество дескрипторов файлов, которые выделяет ядро Linux. Когда вы получаете много сообщений об ошибках, связанных с нехваткой дескрипторов файлов, вы можете увеличить этот предел. Попытки выделить больше файловых дескрипторов, чем файл-макс, сообщаются с ошибкой «VFS: достигнут предел максимального размера файла.
Я не думаю, что есть журнал, в котором у нас есть информация о том, какой процесс открыл максимальное количество файловых дескрипторов