一、需要注意所有“index”开头的配置必须要在ES启动以后,通过接口来更改!
踩了个"node settings must not contain any index level settings",报错提示是所有index配置(例如 index.mapper.dynamic)都需要在ES启动之后通过接口来改。
index.merge.scheduler.max_thread_count: 1 # 索引 merge 最大线程数 index.translog.durability: async # 这个可以异步写硬盘,增大写的速度 index.translog.sync_interval: 120s #translog 间隔时间 index.refresh_interval: 300s #index 刷新间隔
二、修改的配置
- indices.memory.index_buffer_size: 30% # 内存
- discovery.zen.ping_timeout: 120s # 心跳超时时间
- discovery.zen.fd.ping_interval: 120s # 节点检测时间
- discovery.zen.fd.ping_timeout: 120s #ping 超时时间
- discovery.zen.fd.ping_retries: 6 # 心跳重试次数
- thread_pool.bulk.size: 60 # 写入线程个数 由于我们查询线程都是在代码里设定好的,我这里只调节了写入的线程数
- thread_pool.bulk.queue_size: 1000 # 写入线程队列大小
三、节点数较多的集群,增加专有master,提升集群稳定性
# 专有master节点的配置文件(conf/elasticsearch.yml)增加如下属性:
node.master: true
node.data: false
node.ingest: false
# 数据节点的配置文件增加如下属性(与上面的属性相反):
node.master: false
node.data: true
node.ingest: true
四、修改系统配置
less /etc/security/limits.conf
* soft nofile 655350
* hard nofile 655350
* soft nproc 204800
* hard nproc 204800
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited
less /etc/security/limits.d/20-nproc.conf
* soft nproc unlimited
root soft nproc unlimited
/etc/sysctl.conf
添加
vm.max_map_count=655360
sysctl -p