Elasticsearch8.17 生产集群使用优化
一、通用优化建议
避免返回大量文档结果集
Elasticsearch 作为搜索引擎,擅长返回与查询匹配的顶级文档。对于需要检索所有匹配文档的数据库类型操作,建议使用 滚动 API(Scroll API) 或 **搜索后游标(Search After Cursor)**,以避免内存和性能问题。
避免大型文档
默认情况下,http.max_content_length
设置为 **100MB**,超过此限制的文档将被拒绝索引。大型文档会显著增加网络、内存和磁盘的负担。即使不请求 _source
,索引操作仍需获取文档 _id
,导致额外开销。建议重新设计数据结构,避免单个文档超过 **10MB**。
二、索引速度优化
使用批量请求
批量请求比单文档索引请求性能更高。通过基准测试确定最优批量大小,通常从 100 个文档 开始,逐步增加至索引速度趋于平稳。注意单个请求大小不宜超过 **5MB**,避免内存压力。
并行数据发送
单线程发送批量请求可能无法充分利用集群资源。使用