我在为云中的集合和节点选择确切的分片数时遇到了一些问题 -
如果您能提供有关以下要求的计划solrcloud,集合(#shards)的建议,那将非常有用:
Data type: structured
Expected data load: 3 TB
Ingestion Strategy: 2 MM records( INSERT/UPDATE/DELETE requests) in every 3 hrs
Max size of a record: 100 KB
设备: 我有5个vms,而每个vm有4个内核,24 GB的RAM。 CPU架构:
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 1
Core(s) per socket: 1
Socket(s): 4
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 58
Stepping: 0
CPU MHz: 2600.000
BogoMIPS: 5200.00
Hypervisor vendor: VMware
Virtualization type: full
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 20480K
NUMA node0 CPU(s): 0-3
答案 0 :(得分:1)
第一点: 对奇数甚至没有影响。碎片,但如果碎片是随机分布的话,拥有更多碎片肯定会增加查询时间。
第二点: 碎片就像数据库分区。您应该根据您拥有的数据以及访问它们的方式来决定分片。一旦创建了集合,就无法重新对其进行分片。如果需要,您可以拆分它。
通常,最好将文档随机分发到分片。
关于尺寸调整部分: 由于每种情况都不同,最好索引一些100/1000文档并检查索引的大小,因为根据模式定义,它可能会有所不同。然后,您可以将值外推到您感知的数据量。 你可以检查一下 / solr / admin / cores?action = STATUS& memory = true。
我有一个5个VM群集,它有3个分片,每个分片有4个副本。但是每个系统都是不同的!