Ubuntu单节点Elasticsearch如何增大total_in_bytes值?
问题场景
在Ubuntu机器上运行单节点Elasticsearch时,节点提示空间不足。查看节点内存指标如下:
"mem" : { "total_in_bytes" : 25217441792, "free_in_bytes" : 674197504, "free_percent" : 3, "used_percent" : 97 }
但执行df -h命令后,发现Linux服务器仍有充足磁盘空间:
Filesystem Size Used Avail Use% Mounted on udev 12G 12G 0 100% /dev tmpfs 2,4G 1,5M 2,4G 1% /run /dev/mapper/ubuntu--vg-ubuntu--lv 158G 110G 42G 73% / ***<=====*** tmpfs 12G 0 12G 0% /dev/shm tmpfs 5,0M 0 5,0M 0% /run/lock tmpfs 12G 0 12G 0% /sys/fs/cgroup /dev/sda2 974M 304M 603M 34% /boot /dev/mapper/ubuntu--vg-lv--opt 206G 70G 127G 36% /opt***<=======*** tmpfs 2,4G 0 2,4G 0% /run/user/1000 /dev/loop0 64M 64M 0 100% /snap/core20/1634 /dev/loop10 56M 56M 0 100% /snap/core18/2620 /dev/loop8 64M 64M 0 100% /snap/core20/1695 /dev/loop2 56M 56M 0 100% /snap/core18/2632 /dev/loop7 92M 92M 0 100% /snap/lxd/23991 /dev/loop3 50M 50M 0 100% /snap/snapd/17883 /dev/loop4 92M 92M 0 100% /snap/lxd/24061
请问如何增大total_in_bytes的值?
解决方案
首先明确:这里的mem指标是Elasticsearch的JVM堆内存,和服务器磁盘空间无关。total_in_bytes是Elasticsearch配置的JVM堆内存最大值,要增大它需修改JVM堆内存配置,步骤如下:
确认服务器物理内存
先执行free -h查看服务器总物理内存,确保有足够剩余内存分配给JVM(Elasticsearch推荐堆内存不超过物理内存的50%,且不超过32GB——超过32GB会失去JVM压缩指针优化,降低内存使用效率)。修改JVM堆内存配置
- 找到Elasticsearch的
jvm.options配置文件:- deb包安装路径:
/etc/elasticsearch/jvm.options - tar包安装路径:
{Elasticsearch安装目录}/config/jvm.options
- deb包安装路径:
- 用编辑器打开文件,找到初始堆(
-Xms)和最大堆(-Xmx)的配置行,例如当前配置可能是:-Xms24g -Xmx24g - 修改为符合要求的更大值,比如服务器物理内存为64GB时,可设置:
-Xms31g -Xmx31g - 保存并关闭文件。
- 找到Elasticsearch的
重启Elasticsearch服务
执行命令重启服务使配置生效:sudo systemctl restart elasticsearch验证配置
重启后,再次查看Elasticsearch节点内存指标,确认total_in_bytes已更新为新的堆内存最大值。
内容的提问来源于stack exchange,提问作者ensberg
相关产品推荐
相关产品推荐

