刚从配置10 TB的日志存储中恢复过来,所以让我们谈谈分片:D
结节
主要来源:elasticsearch的权威指南
堆:最多32 GB:
如果堆小于32 GB,则JVM可以使用压缩的指针,从而节省了大量内存:每个指针4个字节而不是8个字节。
HEAP:最多50%的服务器内存。 其余的留给文件系统缓存(因此64 GB服务器是常见的最佳选择):
Lucene充分利用了由内核管理的文件系统缓存。 如果没有足够的文件系统缓存空间,性能将会受到影响。 此外,更多的专用于堆的内存意味着使用doc值的所有其他字段的可用空间更少。
[索引分割] N个分片可以将负载分散到N个服务器上:
1个分片可以使用1个节点上的所有处理能力(就像一个独立的索引)。 分片索引上的操作在所有分片上同时运行,并且结果汇总。
分片越少越好(理想情况是1个分片):
分片的开销很大。 有关数字,请参阅此基准[https://blog.trifork.com/2014/01/07/elasticsearch-how-many-shards/]
越少的服务器越好(理想的是1台服务器(具有1个分片)]):
索引的负载只能通过分片在节点之间分配(一个分片足以使用节点上的所有资源)。 更多的分片允许使用更多的服务器,但是更多的服务器会带来更多的数据聚合开销……没有免费的午餐。
组态
用法:单个大索引
我们将所有内容放在一个大索引中,然后让Elasticsearch进行与分片数据有关的所有艰苦工作。 应用程序中没有任何逻辑,因此更易于开发和维护。
假设我们计划将来的