向量索引内存配置
向量索引的最佳 Neo4j 内存配置
内存配置建议是 堆 + Neo4j 页面缓存 + .25(向量索引大小) + 额外的操作系统管理内存。
注意事项和警告
如果您不打算将向量返回给用户或调用应用程序,则可以减少 Neo4j 页面缓存,因为向量不需要加载到内存中。例如,一个总大小为 459 GB 的数据库中的向量存储为 402 GB。通过将页面缓存设置为 100 GB,图的重要部分仍在内存中,并且服务器要求降低。内存与存储的比率会很高,但 Neo4j 仍能保持其性能。1:4 的比率应该能很好地运行。
如果您计划将向量返回给用户或调用应用程序并将其用于精细搜索,则必须增加内存。如果您将向量用于进一步搜索或优化搜索结果,则也必须增加页面缓存内存分配。
示例计算
以下示例展示了当向量仅用于搜索且不返回给用户或应用程序时如何计算内存要求。
Neo4j 数据库 |
10M |
~40GB |
---|---|---|
向量索引(单一索引) |
(1.1 * (4 * 768 + 8 * 16) * 10M)/1048576000 |
33.5GB |
数据库总大小 |
73.5GB |
堆 |
10-20GB |
20GB |
---|---|---|
页面缓存 |
数据库大小 * 1.2 |
50GB |
索引的操作系统内存 |
向量索引的 0.4 倍 |
12GB |
总计 |
82GB |
实例大小 | 磁盘存储 | 堆 | 页面缓存 | 剩余内存 |
---|---|---|---|---|
32GB |
64GB |
7.58GB |
9.01GB |
15.41GB |
64GB |
128GB |
16.17GB |
17.56GB |
30.27GB |
128GB |
256GB |
26.90GB |
49.94GB |
51.16GB |
256GB |
512GB |
31GB |
132.34GB |
92.66GB |
384GB |
768GB |
31GB |
220.25GB |
132.75GB |
512GB |
1024GB |
31GB |
308.55GB |
172.45GB |
实例大小 | 磁盘存储 | 堆 | 页面缓存 | 剩余内存 |
---|---|---|---|---|
32GB |
64GB |
10.39GB |
11.13GB |
10.48GB |
64GB |
128GB |
20.57GB |
23.43GB |
20GB |
128GB |
256GB |
29.60GB |
70.40GB |
28GB |
256GB |
512GB |
31GB |
180.20GB |
44.8GB |
384GB |
768GB |
31GB |
293.20GB |
59.8GB |
512GB |
1024GB |
31GB |
410.5GB |
70.5GB |