文档首页/
MapReduce服务 MRS/
组件操作指南(安卡拉区域)/
使用Elasticsearch/
Elasticsearch常见问题/
Elasticsearch运行过程中出现某EsNode实例堆内存溢出
更新时间:2024-11-29 GMT+08:00
Elasticsearch运行过程中出现某EsNode实例堆内存溢出
问题背景与现象
某节点的EsNode1无法访问,通过该实例执行写入和查询操作均失败。
原因分析
- 分析该实例日志发现,报堆内存OutOfMemoryError,通过dump堆内存分析发现超过70个线程的string数组长度达到99840以上,每个线程占用285MB以上内存,进一步分析数据内容,都是一次bulk导入的数据,总共占用19GB以上,缓存这些数据内存使用率就达到79%,大量任务并发提交,导致实例内存溢出。
- 与ISV确认,每次bulk提交50000条数据,Elasticsearch每个bulk命令的最佳导入性能为5MB~15MB,根据ISV每条数据2KB左右,推荐ISV修改bulk数据条数为2000条。
解决方法
重启EsNode1实例,ISV整改业务侧的批量bulk导入数据条数为2000条,减少导入过程中的内存消耗,解决进程OOM问题。
父主题: Elasticsearch常见问题