docker启动elasticsearch时内存不足问题及解决方法
问题
docker安装并启动elasticsearch时内存不足
系统centos8(阿里云ecs服务器)
[root@iZ2zeczvvb79boy368xppwZ~]#cat/etc/redhat-release CentOSLinuxrelease8.1.1911(Core)
安装过程
dockerpullelasticsearch:6.4.0
修改虚拟机内存(貌似没有效果)
sysctl-wvm.max_map_count=262144
使用dockerrun命令跑容器
dockerrun-p9200:9200-p9300:9300--nameelasticsearch\ -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\ -delasticsearch:6.4.0
dockerps查看容器并没有启动
[root@iZ2zeczvvb79boy368xppwZ~]#dockerps CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES edfc400862ebrabbitmq:3.7.15"docker-entrypoint.s…"14hoursagoUp14hours0.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/tcprabbitmq 2ae2f3f8dc1fnginx:1.10"nginx-g'daemonof…"2weeksagoUp2weeks0.0.0.0:80->80/tcp,443/tcpnginx 164e4e7561dfredis:3.2"docker-entrypoint.s…"2weeksagoUp2weeks0.0.0.0:6379->6379/tcpredis eeabe57f1f21mysql:5.7"docker-entrypoint.s…"2weeksagoUp2weeks0.0.0.0:3306->3306/tcp,33060/tcpmysql
dockerps-a查看容器确实创建了
[root@iZ2zeczvvb79boy368xppwZ~]#dockerps-a CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES 767829ae1d7celasticsearch:6.4.0"/usr/local/bin/dock…"AboutaminuteagoExited(1)Aboutaminuteagoelasticsearch edfc400862ebrabbitmq:3.7.15"docker-entrypoint.s…"14hoursagoUp14hours0.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/tcprabbitmq 2ae2f3f8dc1fnginx:1.10"nginx-g'daemonof…"2weeksagoUp2weeks0.0.0.0:80->80/tcp,443/tcpnginx 164e4e7561dfredis:3.2"docker-entrypoint.s…"2weeksagoUp2weeks0.0.0.0:6379->6379/tcpredis eeabe57f1f21mysql:5.7"docker-entrypoint.s…"2weeksagoUp2weeks0.0.0.0:3306->3306/tcp,33060/tcpmysql
查看日志dockerlogs-felasticsearch命令查看日志发现jvm内存不足
[root@iZ2zeczvvb79boy368xppwZ~]#dockerlogs-felasticsearch OpenJDK64-BitServerVMwarning:OptionUseConcMarkSweepGCwasdeprecatedinversion9.0andwilllikelyberemovedinafuturerelease. OpenJDK64-BitServerVMwarning:INFO:os::commit_memory(0x00007ebf15330000,549668585472,0)failed;error='Notenoughspace'(errno=12) # #ThereisinsufficientmemoryfortheJavaRuntimeEnvironmenttocontinue. #Nativememoryallocation(mmap)failedtomap549668585472bytesforcommittingreservedmemory. #Anerrorreportfilewithmoreinformationissavedas: #logs/hs_err_pid1.log
解决方法
修改jvm.options文件配置
首先查找jvm.options文件位置(每个服务器的位置可能不同)
[root@iZ2zeczvvb79boy368xppwZ~]#find/-namejvm.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)
##JVMconfiguration ################################################################ ##IMPORTANT:JVMheapsize ################################################################ ## ##YoushouldalwayssettheminandmaxJVMheap ##sizetothesamevalue.Forexample,toset ##theheapto4GB,set: ## ##-Xms4g ##-Xmx4g ## ##Seehttps://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html ##formoreinformation ## ################################################################ #Xmsrepresentstheinitialsizeoftotalheapspace #Xmxrepresentsthemaximumsizeoftotalheapspace -Xms512m -Xmx512m
保存并退出
vim中按i进入编辑模式,按ESC退出编辑模式,按:进入命令模式,然后在底部命令行输入w为保存,q为退出,q!为强制退出。
再次启动容器,dockerps查看容器启动成功
[root@iZ2zeczvvb79boy368xppwZ~]#dockerps CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES f5c4ed61196belasticsearch:6.4.0"/usr/local/bin/dock…"15minutesagoUp15minutes0.0.0.0:9200->9200/tcp,0.0.0.0:9300->9300/tcpelasticsearch edfc400862ebrabbitmq:3.7.15"docker-entrypoint.s…"15hoursagoUp15hours0.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/tcprabbitmq 2ae2f3f8dc1fnginx:1.10"nginx-g'daemonof…"2weeksagoUp2weeks0.0.0.0:80->80/tcp,443/tcpnginx 164e4e7561dfredis:3.2"docker-entrypoint.s…"2weeksagoUp2weeks0.0.0.0:6379->6379/tcpredis eeabe57f1f21mysql:5.7"docker-entrypoint.s…"2weeksagoUp2weeks0.0.0.0:3306->3306/tcp,33060/tcpmysql
总结
到此这篇关于docker启动elasticsearch时内存不足问题及解决方法的文章就介绍到这了,更多相关docker启动elasticsearch内存不足内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!