目录
es性能优化
写入性能优化
增加refresh的时间间隔
默认1s就会触发一次Refresh,然后Refresh会把内存中的数据刷新到操作系统的文件缓存系统中(buffer ——> OS cache)。每次索引的refresh会产生一个新的segment段,这会导致频繁的segment merge行为。一般在查询实时性要求不高的场景下可改为30s,甚至是“-1”(关闭refresh)。入库完之后修改回默认值是1s即可,形如:
refresh参数设置
Curl -XPUT "localhost:9200/[index_name]/_settings?pertty" -d '{
"index":{
"refresh_interval":"30s"
}
}'
减少副本
es为了保证集群的可用性,提供了Relicas(副本支持),然而每个副本也会执行分析、索引及可能的合并过程,所以Replicas的数量会严重影响索引的效率。
当写索引时,需要把写入的数据都同步到副本节点,副本节点越多,写索引的效率就越慢。
如果我们需要大批量的进行写入操作,可以先禁止Replicas复制,设置index.number_of_replicas:0关闭副本,在写入完成后,Replica修改回正常状态。
副本调整
Curl -XPUT "localhost:9200/[index_name]/_settings?pertty" -d '{
"index":{
"number_of_replicas":0
}
}'
增加translog flush大小
flush主要目的是待translog达到多

本文介绍了Elasticsearch的性能优化技巧,包括写入性能优化的增加refresh时间间隔、减少副本、调整translog flush大小和设置bulk queue,以及查询性能优化的合并segments和设置batch.size。优化策略旨在提升ES在大规模数据写入和复杂查询时的效率。
最低0.47元/天 解锁文章
6058

被折叠的 条评论
为什么被折叠?



