Значения по умолчанию для мягких и жестких ограничений можно проверить с помощью
ulimit -a
ulimit -a -H
Это значение для каждого пользователя, и каждый новый процесс наследует эти ограничения.OpenNMS изменяет жесткое ограничение во время запуска с помощью сценария инициализации по умолчанию и изменяется на
ulimit -n 20480
Если вы запускаете OpenNMS, вы можете увидеть ограничения для JVM OpenNMS с помощью
cat /proc/$(cat /var/run/opennms.pid)/limits
. Вы можетепосмотрите, сколько файловых дескрипторов выделено OpenNMS:
ls -l /proc/$(cat /var/run/opennms.pid)/fd | wc -l
Если вы используете lsof
с идентификатором процесса OpenNMS, вы увидите большее число, чем в /proc/pid/fd
lsof -p $(cat /var/run/opennms.pid) | wc -l
Причина в том, что в памяти отображаются .so
файлы, которые не учитываются для настроенных пределов и перечислены с lsof
.
lsof | grep $(cat /var/run/opennms.pid) | wc -l
Если вы хотите увидеть, сколько дескрипторов файловой системы используется,вы можете запустить:
cat /proc/sys/fs/file-nr
4128 0 262144
вы можете увидеть три значения:
number of allocated file handles: 4128
number of used file handles: 0
maximum number of file handles: 262144
В надежде, что это поможет исследовать проблемы с дескриптором файла.