We use BULK api to index multiple docs. We try to control the batch size through various parameters indirectly. But I wanted to know if there is any clean and recommended way to get the physical size of the batch prepared before sending the BULK index request to ES.
Note:Language - C# using NEST
答案 0 :(得分:0)
TLDR
https://www.elastic.co/guide/en/elasticsearch/guide/current/bulk.html
整个批量请求需要由节点加载到内存中 收到我们的请求,所以请求越大,内存越少 可用于其他请求。有一个最佳的批量大小 请求。超过这个尺寸,性能不再提高甚至可能 放下。然而,最佳尺寸不是固定数量。这取决于 完全取决于您的硬件,文档大小和复杂性,以及您的 索引和搜索负载。
幸运的是,很容易找到这个最佳点:尝试索引典型 批量增加的文件。当表演开始时 放下,你的批量太大了。一个好的起点是 批量1,000到5,000份文件,或者,如果您的文件非常好 大,甚至更小的批次。
密切关注散装物理尺寸通常很有用 要求。一千个1KB的文件与一个非常不同 千元1MB文件。一个很好的体积大小开始玩 大小约为5-15MB。