elasticsearch-运维-index单个文件过大导致data节点oom

利用jhat分析java_pid25.hprof文件
查看内存直方图,可以清晰的看到哪些类占用了多少内存


内存分布

点击排名第一位的Bytes


Bytes

我们用curl 172.18.61.5:7000/class/0x6401ca038 > class.b命令将内存消耗导入至本地文件,筛选出消耗内存最多的行
<a href="../object/0x7a7600000">[B@0x7a7600000 (70380996 bytes)</a>
点击查看具体内容
content

写个脚本,将16进制utf8编码字符串转成中文,如下:


utf8编码转换

根据id查询相关数据,单条数据3.2M,一次bulk数据70M,并且该表数据结构较简单,几乎是{时间, 数值}这类的数据
,这类数据放在map里会导致数据膨胀,heap直方图里hashmap node占比也很高,可以推测是此类数据所致
解决方案

控制一次bulk写库请求的数据量大小

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。