你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
输入关键字进行搜索
搜索:
没有找到相关结果
byx313 - BLOG:https://www.jianshu.com/u/43fd06f9589c
赞同来自:
Joshua
laoyang360 - 《一本书讲透Elasticsearch》作者,Elastic认证工程师 [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:https://elastic.blog.csdn.net
要回复问题请先登录或注册
3 个回复
byx313 - BLOG:https://www.jianshu.com/u/43fd06f9589c
赞同来自:
Joshua
赞同来自:
laoyang360 - 《一本书讲透Elasticsearch》作者,Elastic认证工程师 [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:https://elastic.blog.csdn.net
赞同来自:
堆内存就是由 JVM (JAVA 虚拟机)管理的内存。建立在堆内存中的对象有生命周期管理机制,由垃圾回收机时自动回收过期对象占用的内存。
堆外内存是由用户程序管理的内存,堆外内存中的对象过期时,需要由用户代码显示释放。
了解了 JAVA 堆内存后,我们看,能否通过调整运营策略来提升堆内存容量呢?
堆内存分配大一点行不行?超过 32GB,指针压缩失效,内存浪费, 50GB 堆内存性能与 31GB 接近且垃圾回收压力大,也影响性能;
多节点部署提高堆内存总量是否可行?多节点部署,占用机器量更大,用户成本上升大客户节点数过多( 几百个 ),集群元数据管理瓶颈,可用性下降 反向推动云上用户拆分集群,阻力很大。
所以,简单的运营侧策略调整无法解决堆内存使用率过高的问题。那么我们就需要确认 ES 的堆内存是被什么数据占用了,能否优化。
2. 堆内存被什么数据占用了?
我们对线上集群的堆内存分布情况做统计分析后,发现绝大部分堆内存主要被 FST( Finite State Transducer )占用了:
FST 内存占用量占分堆内存总量的 50% ~ 70%
FST 与 磁盘数据量成正比:10TB 磁盘数据量,其对应的 FST 内存占用量在 10GB ~ 15GB 左右。
从这里看基本就知道写入数据多,堆内存肯定会使用率高!