Indexing buffer size

https://www.elastic.co/guide/en/elasticsearch/reference/current/tune-for-indexing-speed.html#_indexing_buffer_size

Is it 512MB for per all shards or per all primary shards?

Docs say:

indices.memory.index_buffer_size
Accepts either a percentage or a byte size value. It defaults to 10%, meaning that 10% of the total heap allocated to a node will be used as the indexing buffer size shared across all shards.

However, doesnt mentioned whether primary only or not. Can someone please elaborate?

the 10% is per node. While every shard has a hard bounded buffer of 256MB we have a high level controller that monitors all shards and once we approach the limit we request the biggest shards in terms of heap memory to free it's buffers and write in memory datastructures to disk. This doesn't mean that buffer freeing includes fsyncs (in-fact it doesn't) so it's pretty fast. The indexing buffers size is shared across all active shards on the node.

1 Like

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.