ElasticSearch内存占用率过高怎么办?

文章目录

1,先用top看看各个进程的内存占用情况

先运行top命令,然后再按一下m键,会对内存进行降序排练。

可以看到,排名第一的是elastic,其实就是ElasticSearch。

2,不能简单的杀死进程,然后再重启。

3,查看一下ElasticSearch进程的具体启动情况

bash 复制代码
ps -ef | grep elasticsearch

或者

bash 复制代码
systemctl status   elasticsearch | more

两行命令意思都一样。

可以看到有三个关于elasticsearch 的进程,进程号PID分别是6764, 6825, 6853。

其实你通过ps -ef | grep elasticsearch这条命令可以看出来,6825是6853的父进程,6764是6853的父进程。

  • 并且,进程6764 Xmx 是64M,Xms是4M,很显然进程6764没有占用太多的内存。
  • 但是进程6825 Xmx是8G, Xms是8G,很显然进程6825会占用太多的内存。
  • Xmx 是 Java 虚拟机(JVM)的一个参数,代表 "最大堆内存大小(Maximum Heap Size)"。它指定了 JVM 可以使用的最大内存量。
    Xms 则代表 "初始堆内存大小(Initial Heap Size)",即 JVM 启动时初始分配的堆内存大小。

在这里还要解释一下,Elasticsearch 本身是用 Java 编写的应用程序,所以它的运行是通过 Java 虚拟机(JVM)来启动的,也就是通过 /opt/elasticsearch-8.11.4/jdk/bin/java 来执行。

当您启动 Elasticsearch 时,实际上是使用 Java 命令来加载和运行 Elasticsearch 的 Java 代码。

4,修改Elasticsearch 的Java堆内存

找到你的Elasticsearch 安装路径,有这样一个文件夹,/opt/elasticsearch-8.11.4/config

里面有一个jvm.options这样的文件,打开找到以下部分。

官方建议设置es内存,大小为物理内存的一半,剩下的一半留给lucene。

所以我的机器物理内存为8g,那么我就取消这两行的注释,设置-Xms4g -Xmx4g。

然后再重启Elasticsearch集群。

相关推荐
一只专注api接口开发的技术猿8 小时前
微服务架构下集成淘宝商品 API 的实践与思考
java·大数据·开发语言·数据库·微服务·架构
AC赳赳老秦8 小时前
Dify工作流+DeepSeek:运维自动化闭环(数据采集→报告生成)
android·大数据·运维·数据库·人工智能·golang·deepseek
明洞日记8 小时前
【软考每日一练009】计算机系统性能评价:基准程序分类与 TPC 实战案例详解
大数据·数据库
李慕婉学姐8 小时前
【开题答辩过程】以《基于Spring Boot和大数据的医院挂号系统的设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
大数据·spring boot·后端
汽车仪器仪表相关领域8 小时前
全程高温伴热,NOx瞬态精准捕捉:MEXA-1170HCLD加热型NOx测定装置项目实战全解
大数据·服务器·网络·人工智能·功能测试·单元测试·可用性测试
橙露8 小时前
嵌入式实时操作系统 FreeRTOS:任务调度与信号量的核心应用
java·大数据·服务器
DO_Community8 小时前
DigitalOcean携手Persistent达成战略合作,让 AI 更亲民、更易扩展
大数据·人工智能·ai·llm·区块链
Wpa.wk9 小时前
持续集成 - 持续集成工具-Jenkins的部署流程
java·运维·经验分享·ci/cd·自动化·jenkins
乾元9 小时前
数据为王——安全数据集的清洗与特征工程
大数据·网络·人工智能·安全·web安全·机器学习·架构
2501_942158439 小时前
服务设计从成本到利润引擎的重构
大数据·python·重构