我在ES2.3中将index.merge.scheduler.max_thread_count设置在哪里?没有在elasticsearch.yml中找到它,还是应该将它添加到配置文件中?
发布于 2016-06-07 13:10:25
任何以index.
开头的Elasticsearch设置都是作为索引级别设置的,这意味着每个索引(例如,在模板中)。任何以indices.
开头的设置都是群集级设置,这意味着elasticsearch.yml
。
在使用ElasticSearch5.0之前(本文撰写时not发布),您可以在elasticsearch.yml
中设置index.
-type设置,但这是一种可悲的行为,因为您可能忘记在一个文件中设置它。
因此,在索引设置中设置它:
PUT /my-index/_settings
{
"index.merge.scheduler.max_thread_count" : 1
}
您可以为所有现有索引设置它:
PUT /_settings
{
"index.merge.scheduler.max_thread_count" : 1
}
一个常见的问题是:为什么这不是一个全球性的环境?这是因为您设置了一个全局模板来控制这些属性:
PUT /_template/my_default_settings
{
"template" : "*",
"settings" : {
"number_of_shards" : 2,
"index.merge.scheduler.max_thread_count" : 1
}
}
但是更重要的是,通过作为索引级别的设置,它使您能够在索引所在的节点上硬件发生变化时动态地更改它。例如,在创建索引时,很可能需要将索引写入最多的节点,但随着时间的推移,写入的频率可能不会太高,因此可以将其移动到需要控制合并调度程序的较大但速度较慢的节点。在这样的例子中,您只希望在线程数量移动之后设置它,从而允许理论上更快(但更小)的机器尽可能快地合并。
https://stackoverflow.com/questions/37688631
复制