(三)elasticsearch 5x 索引优化

来源:互联网 发布:indexof( ,) js 编辑:程序博客网 时间:2024/05/29 12:30

elasticsearch 5x版本优化策略

常规优化:

elasticsearch.yml配置修改

1.bootstrap.memory_lock: true   设置该值使es不使用Swapping,可提高es性能

5x版本之前为bootstrap.mlockall: true


2.设置部分节点仅为数据节点,并关闭http功能

#关闭master功能,使之仅成为数据节点 node.master: falsenode.data: true#数据节点关闭http功能http.enabled: false

3.transport.tcp.compress: true 设置所有节点间的传输数据是经过压缩的。默认不压缩。 


4.action.auto_create_index: false 防止自动创建索引


jvm.options配置修改

修改jvm使用的内存,建议为总内存的1/4到1/2,但是不要超过32g

-Xms31g
-Xmx31g

插入数据优化:

当需要大规模插入数据,而不考虑检索性能时

1.先将索引的分片数改为0,待插入结束后再调整为需要的值

2.减少shard刷新间隔,用于大规模bulk插入,插入结束后改为1s

curl -XPUT ip:9200/myindex/_settings -d'{"index":{ "number_of_replicas": 0, "refresh_interval" : "-1"}}' 

3.关闭合并的阈值,插入结束后改为merge来恢复阈值

curl -XPUT ip:9200/_cluster/settings -d'{"transient": {  "indices.store.throttle.type": "none"}}'

其他优化:

1.合并索引段,段数越少越好(不要在插入数据时候合并)

2.删除标记为删除的数据

curl -XPOST ip:9200/my_index/_forcemerge?max_num_segments=1&only_expunge_deletes=true