elasticsearch 内存分配设置
一、背景
elasticsearch版本为2.3.3
elasticsearch 默认安装后设置的内存是1GB,对于现实业务来说太小
预计在五台机器上配置elasticsearch构建集群,但是构建索引嫌搜索速度太慢,猜测是机器内存没有被es充分利用
二、概念
- 每个分片占用硬盘容量不超过es的最大JVM堆空间,一般设置不超过32G
三、设置内存步骤
-
ubuntu查看当前elasticsearch使用内存
- 运行elasticsearch
- 命令行输入: ps -ef|grep elasticsearch 或者 ps -ef|grep java
- 找到-Xms和-Xmx两个参数,后面跟的数字和单位就是当前es运行的内存配置,图中是已设置好的24G
-
查看es所在机器的内存大小
- windows:
一般在桌面——我的电脑——右键——属性能看到 - ubuntu:
- 命令行输入top
- 查看KiB Mem位置,若没有+看第6位和7位,例如图中是约49G内存,如果后面跟了+号,多算一位,即493G
- windows:
-
确定要设置的内存大小,假如内存小于64G,确定两个参数为1/2内存;若内存大于64G,取32G,两个参数设置的大小建议一致
参考文章: https://www.pdai.tech/md/db/nosql-es/elasticsearch-y-peformance.html#禁止-swap -
为es设置内存分配参数
网上设置方法:- 第一种: 设置环境变量:export ES_HEAP_SIZE=4g (未试过)
- 第二种: 在程序启动的时候把内存大小传递给它:./bin/elasticsearch -Xmx4g -Xms4g (试过,不起作用)
- 第三种: 修改jvm.options文件,此文件一般在安装目录下,或者使用 whereis elasticsearch 命令.将其中-Xms4g和-Xmx4g注释#去掉 (未试过)
实际成功方法:
-
第四种:
- 进入elasticsearch的bin目录,找到elasticsearch.in.sh这个文件
- 修改红线标出的ES_MIN_MEM和ES_MAX_MEM的值,保存,正常运行即可
- 进入elasticsearch的bin目录,找到elasticsearch.in.sh这个文件
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!