在 Elasticsearch 中,单个索引的大小是一个重要的优化因素,直接影响到性能、存储、查询速度等方面。对于单个索引的合适大小,并没有一个固定的标准,但根据 Elasticsearch 的官方文档和最佳实践,以下是一些一般性的建议:
一般来说,单个 Elasticsearch 索引的大小应控制在 几十 GB 到 100GB 之间。过大的索引可能会导致以下问题:
但具体合适的大小会受到以下因素的影响:
k8s-app-log-*
或 nginx-log-*
),则可能需要根据时间滚动索引,即定期创建新的索引,而不是让单个索引过大。对于日志数据、监控数据等时间序列数据,常见的做法是按时间滚动索引。例如:
log-2025-01-21
log-2025-01
Elasticsearch 中的每个索引由多个分片(shard)组成。合理的分片数可以避免单个分片过大导致性能问题。通常建议:
使用 ILM 可以自动化地根据索引的年龄或大小来滚动索引。这种策略可以根据需要创建新索引、关闭旧索引等,防止单个索引变得过大。
例如,ILM 配置可以指定: