Назад | Перейти на главную страницу

elasticsearch @ debian6 запущено /etc/init.d max_file_descriptors

Я установил 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, поэтому вы можете уменьшить его на порядок.