仅在使用ELK堆栈几个月并filebeat
逐日创建索引后才可见的常见问题。这里有一些选项可以解决性能问题。
首先,您可以_forcemerge
用来限制Lucene索引中的段数。操作不会限制或合并索引,但会提高Elasticsearch的性能。
curl -XPOST 'localhost:9200/logstash-2017.07*/_forcemerge?max_num_segments=1'
这将贯穿整个月的索引并强制合并细分。每月完成一次后,它将大大提高Elasticsearch的性能。以我为例,cpu使用率从100%下降到2.7%。
不幸的是,这不能解决分片问题。
正如tomas所提到的。如果要限制分片或索引的数量,除了_reindex
将少数索引合并为一个索引外,别无选择。这可能需要一段时间,具体取决于您拥有的索引的数量和大小。