最近做了一些在容器上部署es的工作,有一些初级的参数设置心得,总结一下,不然很快就忘了
可以说内存调优决定了查询性能的上限,这里简单说几个重点
引擎启动时就申请足够的内存
bootstrap.memory_lock=true
java运行时堆内存要设置一致,原因同上,避免java运行时向系统申请内存
ES_JAVA_OPTS=-Xms1024m -Xmx1024m
es和lucene引擎是分开的,es是堆内存,lucene是非堆内存,随用随取的
es官方推荐分片大小不要超过50G,单分片过大会影响查询和索引性能
每1GB堆内存对应集群的分片在20-25之间
也就是说对于一个可用物理内存为8G的服务器来说,推荐承载160-200shards,并且存储不超过8T-10T的数据,如果再多建议增加内存了