• 企业400电话
  • 网络优化推广
  • AI电话机器人
  • 呼叫中心
  • 全 部 栏 目

    网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    docker启动elasticsearch时内存不足问题及解决方法
    POST TIME:2021-10-16 16:44

    问题

    docker安装并启动elasticsearch时内存不足

    系统centos8(阿里云ecs服务器)

    [root@iZ2zeczvvb79boy368xppwZ ~]# cat /etc/redhat-release
    CentOS Linux release 8.1.1911 (Core)

    安装过程

    docker pull elasticsearch:6.4.0

    修改虚拟机内存(貌似没有效果)

    sysctl -w vm.max_map_count=262144

    使用docker run命令跑容器

    docker run -p 9200:9200 -p 9300:9300 --name elasticsearch \
    
    -e "discovery.type=single-node" \
    
    -e "cluster.name=elasticsearch" \
    
    -v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
    
    -v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
    
    -d elasticsearch:6.4.0

    docker ps查看容器并没有启动

    [root@iZ2zeczvvb79boy368xppwZ ~]# docker ps
    CONTAINER ID  IMAGE    COMMAND     CREATED    STATUS    PORTS                              NAMES
    edfc400862eb  rabbitmq:3.7.15  "docker-entrypoint.s…" 14 hours ago  Up 14 hours   0.0.0.0:4369->4369/tcp, 0.0.0.0:5671-5672->5671-5672/tcp, 0.0.0.0:15671-15672->15671-15672/tcp, 0.0.0.0:25672->25672/tcp rabbitmq
    2ae2f3f8dc1f  nginx:1.10   "nginx -g 'daemon of…" 2 weeks ago   Up 2 weeks   0.0.0.0:80->80/tcp, 443/tcp                        nginx
    164e4e7561df  redis:3.2   "docker-entrypoint.s…" 2 weeks ago   Up 2 weeks   0.0.0.0:6379->6379/tcp                          redis
    eeabe57f1f21  mysql:5.7   "docker-entrypoint.s…" 2 weeks ago   Up 2 weeks   0.0.0.0:3306->3306/tcp, 33060/tcp                       mysql

    docker ps -a 查看容器确实创建了

    [root@iZ2zeczvvb79boy368xppwZ ~]# docker ps -a
    CONTAINER ID  IMAGE     COMMAND     CREATED    STATUS       PORTS                              NAMES
    767829ae1d7c  elasticsearch:6.4.0 "/usr/local/bin/dock…" About a minute ago Exited (1) About a minute ago                                elasticsearch
    edfc400862eb  rabbitmq:3.7.15  "docker-entrypoint.s…" 14 hours ago   Up 14 hours      0.0.0.0:4369->4369/tcp, 0.0.0.0:5671-5672->5671-5672/tcp, 0.0.0.0:15671-15672->15671-15672/tcp, 0.0.0.0:25672->25672/tcp rabbitmq
    2ae2f3f8dc1f  nginx:1.10   "nginx -g 'daemon of…" 2 weeks ago   Up 2 weeks      0.0.0.0:80->80/tcp, 443/tcp                        nginx
    164e4e7561df  redis:3.2    "docker-entrypoint.s…" 2 weeks ago   Up 2 weeks      0.0.0.0:6379->6379/tcp                          redis
    eeabe57f1f21  mysql:5.7    "docker-entrypoint.s…" 2 weeks ago   Up 2 weeks      0.0.0.0:3306->3306/tcp, 33060/tcp                       mysql

    查看日志docker logs -f elasticsearch命令查看日志发现jvm内存不足

    [root@iZ2zeczvvb79boy368xppwZ ~]# docker logs -f elasticsearch
    OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
    OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00007ebf15330000, 549668585472, 0) failed; error='Not enough space' (errno=12)
    #
    # There is insufficient memory for the Java Runtime Environment to continue.
    # Native memory allocation (mmap) failed to map 549668585472 bytes for committing reserved memory.
    # An error report file with more information is saved as:
    # logs/hs_err_pid1.log

    解决方法

    修改jvm.options文件配置
    首先查找jvm.options文件位置(每个服务器的位置可能不同)

    [root@iZ2zeczvvb79boy368xppwZ ~]# find / -name jvm.options
    /var/lib/docker/overlay2/d399872a3517b4d4acb0d2f70d0625c0f38251ffe5819a1cea00f8213de3e7f5/diff/usr/share/elasticsearch/config/jvm.options

    vim进入文件修改虚拟机最小内存

    [root@iZ2zeczvvb79boy368xppwZ ~]# vim /var/lib/docker/overlay2/d399872a3517b4d4acb0d2f70d0625c0f38251ffe5819a1cea00f8213de3e7f5/diff/usr/share/elasticsearch/config/jvm.options

    找到-Xms属性,修改成512m(我的elasticsearch:6.4.0默认为1g)

    ## JVM configuration
    
    ################################################################
    ## IMPORTANT: JVM heap size
    ################################################################
    ##
    ## You should always set the min and max JVM heap
    ## size to the same value. For example, to set
    ## the heap to 4 GB, set:
    ##
    ## -Xms4g
    ## -Xmx4g
    ##
    ## See https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html
    ## for more information
    ##
    ################################################################
    
    # Xms represents the initial size of total heap space
    # Xmx represents the maximum size of total heap space
    
    -Xms512m
    -Xmx512m

    保存并退出

    vim中按i进入编辑模式,按ESC退出编辑模式,按:进入命令模式,然后在底部命令行输入w为保存,q为退出,q!为强制退出。
    再次启动容器,docker ps查看容器启动成功

    [root@iZ2zeczvvb79boy368xppwZ ~]# docker ps
    CONTAINER ID  IMAGE     COMMAND     CREATED    STATUS    PORTS                              NAMES
    f5c4ed61196b  elasticsearch:6.4.0 "/usr/local/bin/dock…" 15 minutes ago  Up 15 minutes  0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp                    elasticsearch
    edfc400862eb  rabbitmq:3.7.15  "docker-entrypoint.s…" 15 hours ago  Up 15 hours   0.0.0.0:4369->4369/tcp, 0.0.0.0:5671-5672->5671-5672/tcp, 0.0.0.0:15671-15672->15671-15672/tcp, 0.0.0.0:25672->25672/tcp rabbitmq
    2ae2f3f8dc1f  nginx:1.10   "nginx -g 'daemon of…" 2 weeks ago   Up 2 weeks   0.0.0.0:80->80/tcp, 443/tcp                        nginx
    164e4e7561df  redis:3.2    "docker-entrypoint.s…" 2 weeks ago   Up 2 weeks   0.0.0.0:6379->6379/tcp                          redis
    eeabe57f1f21  mysql:5.7    "docker-entrypoint.s…" 2 weeks ago   Up 2 weeks   0.0.0.0:3306->3306/tcp, 33060/tcp                       mysql

    总结

    到此这篇关于docker启动elasticsearch时内存不足问题及解决方法的文章就介绍到这了,更多相关docker启动elasticsearch内存不足内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    上一篇:Tomcat设置maxPostSize实现过程解析
    下一篇:Tomcat Nginx Redis实现session共享过程图解
  • 相关文章
  • 

    关于我们 | 付款方式 | 荣誉资质 | 业务提交 | 代理合作


    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信