Я установил elasticsearch @ debian6, этот учебник. Я настроил системные директивы максимального количества открытых файлов, поэтому у меня есть следующие значения:
# su
# cat /proc/sys/fs/file-max
70000
# ulimit -Hn
64000
# ulimit -Sn
32000
Когда я проверяю elasticsearch max_file_descriptors по:
curl -XGET 'http://localhost:9200/_nodes?process=true&pretty=true'
я получу 1024.
Когда я перезапускаю его пользователем root, он имеет "max_file_descriptors": 64000 сейчас.
Что не так с автозапуском init.d? Когда я проверяю htop, эластичный, автоматически запускаемый init.d с этими 1024 дескрипторами, также запускается под пользователем root.
Я установил максимальное количество файлов, открытых на 2 конф:
cat /etc/sysctl.conf
...
fs.file-max = 70000
cat /etc/security/limits.conf
...
* soft nofile 32000
* hard nofile 64000
root soft nofile 32000
root hard nofile 64000
Настройки в /etc/security/limits.conf
обычно применяются pam_limits
PAM модуль. Услуги запущены init
однако не запускаются в рамках сеанса PAM, поэтому эти настройки не применяются. Я нашел единственный надежный способ установить это - запустить ulimit
из самого initscript. Отредактируйте сценарий инициализации ElasticSearch и добавьте что-то вроде этого вверху:
ulimit -n 64000
Я не уверен, что вы хотите установить sys.file-max
Кстати; в моей системе это значение по умолчанию 779149, поэтому вы можете уменьшить его на порядок.