小弟有个生产的疑问跟想法想问一下大佬们:
[/*]
[*]我们对JVM堆内存的设置,有一两台节点是设置8G,其余的都是16GB,其余的都是用于堆外内存,这个现象好像是堆内存head不够用了所以才导致这种现象。现在就是能不能不通过无脑升级配置的方式去做一些调优的工作。[/*]
[*]我目前能想到的就是:
[/*]
[/list]
- 背景:有一个log的集群,规模大概是84TB,7,387 shards,950 indices 增量大概是300GB差不多,我们的场景总会有某一些时刻写入量是特别大的,比如说索引速率大概是3000W(平常5W左右),这个时候就老是会导致集群中的一节或者某几台节点重启。
- 配置 是节点16C 32G(统一)
- 角色安排是这样[list][*]"nodes" : {
- "count" : {
- "total" : 18,
- "coordinating_only" : 0,
- "data" : 15,
- "ingest" : 15,
- "master" : 3
- }
[/*]
[*]我们对JVM堆内存的设置,有一两台节点是设置8G,其余的都是16GB,其余的都是用于堆外内存,这个现象好像是堆内存head不够用了所以才导致这种现象。现在就是能不能不通过无脑升级配置的方式去做一些调优的工作。[/*]
[*]我目前能想到的就是:
- 1.堆内存从16GB 调整到 24GB
- 2.refresh_interval = 5 和 flush的频率调整到更高一点
- 3.事务日志持久性模式translog.durability 设置async
- 其实的就暂时想不到有啥优化方案了。
[/*]
[/list]
2 个回复
Charele - Cisco4321
赞同来自:
再说了,如果真是oom,你调别的也没用啊,
spoofer
赞同来自:
1、translog.durability=async,还可以设置translog.sync_interval来加大translog的刷盘时间间隔,并且设置translog.flush_threshold_size的大小(默认512M),超过这个大小会导致refresh操作~~
2、调整一下段合并的策略和线程数
3、indexing buffer 是否可以增加?