elasticsearch @ debian6 由 /etc/init.d max_file_descriptors 启动

pal*_*mic 2 debian init.d elasticsearch

我已经通过本教程安装了 elasticsearch@debian6 。我已经设置了我的系统最大打开文件指令,所以我有这些值:

# su
# cat /proc/sys/fs/file-max
70000

# ulimit -Hn
64000

# ulimit -Sn
32000
Run Code Online (Sandbox Code Playgroud)

当我通过以下方式检查 elasticsearch max_file_descriptors 时:

curl -XGET 'http://localhost:9200/_nodes?process=true&pretty=true'
Run Code Online (Sandbox Code Playgroud)

我会得到 1024

当我用 root 用户重新启动它时,它现在有“max_file_descriptors”:64000。

init.d 自动启动有什么问题?当我检查 htop 时,由 init.d 自动启动的具有 1024 个描述符的弹性也在 root 用户下运行。

我已经设置了 2 个 confs 打开的最大文件数:

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
Run Code Online (Sandbox Code Playgroud)

mgo*_*ven 6

中的设置/etc/security/limits.conf通常由pam_limits PAM模块应用。init但是,由 启动的服务不在 PAM 会话下运行,因此不会应用这些设置。我发现设置它的唯一可靠方法是ulimit从 initscript 本身运行。编辑 ElasticSearch initscript 并在顶部附近添加如下内容:

ulimit -n 64000
Run Code Online (Sandbox Code Playgroud)

我不确定你想设置sys.file-maxBTW;在我的系统上,它默认为 779149,因此您可能会将其减少一个数量级。