elasticsearch.yml
设置最大分片数 (默认1000):
cluster.max_shards_per_node: 1000000
kibana
设置默认查询数量(深度分页问题)
PUT movies/_settings
{
"index" : {
"max_result_window" : 20000
}
}
jvm.options
设置堆内存大小
-Xms8g
-Xmx8g
jvm heap分配:es7.6版本默认1GB,这个值太小,很容易导致OOM。Jvm heap大小不要超过物理内存的50%,最大也不要超过32GB(compressed oop),它可用于其内部缓存的内存就越多,但可供操作系统用于文件系统缓存的内存就越少,heap过大会导致GC时间过长。
修改jvm heap有两种方式:
① 在ES进程启动的时候加上参数:ES_JAVA_OPTS=“-Xms512m -Xmx512m”,或在jvm.options中修改-Xms和-Xmx,注意最大值和最小值要相同,避免jvm heap在运行中resize,这是一个非常耗性能的过程。
② 修改环境变量:ES_HEAP_SIZE,环境变量的优先级高于jvm.options中的设置的数值。