弹性搜索过程的最大文件描述符[4096]太低,增加到至少[65536]

时间:2016-11-18 17:57:30

标签: elasticsearch docker

使用Ubuntu 16.10 Docker 1.12.3 Docker Composer 1.8 官方弹性码头图像的弹性最新标签

搬运工-compose.yml

version: '2'
services:
    elastic:
        image: elasticsearch
        environment:
            - ES_JAVA_OPTS=-Xmx2g -Xms2g

登录日志

elastic_1 |错误:引导程序检查失败 elastic_1 |弹性搜索过程的最大文件描述符[4096]太低,增加到至少[65536] elastic_1 | [2016-11-18T17:48:17,058] [INFO] [o.e.n.Node] [HK_OIan]停止......

任何想法,谢谢

3 个答案:

答案 0 :(得分:2)

从elasticsearch官方文档中读取资源后,我设法启动容器更新我的docker-compose.yml文件

version: '2'
services:
  elastic:
      image: elasticsearch
      environment:
          - ES_JAVA_OPTS=-Xmx2g -Xms2g
      ulimits:
          nofile:
              soft: 65536
              hard: 65536

添加ulimit部分

答案 1 :(得分:0)

使用以下命令检查进程运行时的实际限制(尽管很短):

cat /proc/<pid>/limits

您将找到类似以下内容的行:

Limit                     Soft Limit           Hard Limit           Units     
Max cpu time              unlimited            unlimited            seconds   
Max file size             unlimited            unlimited            bytes     
Max data size             unlimited            unlimited            bytes     
Max stack size            8388608              unlimited            bytes     
Max core file size        0                    unlimited            bytes 
<truncated>    

然后取决于运行器或容器(在我的情况下,这是主管的minfds值),您可以取消实际的限制配置。

答案 2 :(得分:0)

使用直接docker run命令而不是docker-compose的用户可以按如下所示设置ulimit。

docker run --ulimit nofile=65536:65536 -p 9200:9200 --name elastic-search docker.elastic.co/elasticsearch/elasticsearch:6.4.2