更新时间:2025-07-29 GMT+08:00
管理向量索引缓存
CSS向量检索引擎基于C++构建,采用堆外内存技术以提升性能和效率。为更好地管理和优化向量索引缓存,CSS向量数据库提供了一系列专用接口,使用户能够灵活地监控和调整缓存使用情况,从而确保查询性能的稳定性和可靠性。
查看缓存统计信息
通过下面的API检索堆外内存的使用情况,返回当前堆外内存的使用量、缓存命中次数、加载次数等关键指标。这些数据有助于用户了解缓存的运行状态,并根据实际使用情况进行调整。在向量检索插件的实现中,每个segment都会构造并存储一份索引文件,查询时这些文件会被加载到堆外内存中,而插件通过缓存机制对这些内存进行有效管理。
GET /_vector/stats
返回示例:
{ "_nodes" : { # 节点信息 "total" : 1, # 总节点数 "successful" : 1, # 成功返回节点数 "failed" : 0 # 执行失败节点数 }, "cluster_name" : "css-d3a7", # 集群名称 "cpu_circuit_breaker_triggered" : false, # 是否已触发写入熔断 "nodes" : { "cAHmVUZTR9ON7t6jxcDCkg" : { # 节点UUID "cpu_cache_capacity_reached" : false, # 当前节点的堆外内存是否达到使用上限 "cpu_eviction_count" : 0, # 当前节点segment级别缓存换出次数 "cpu_hit_count" : 0, # 当前节点segment级别缓存命中次数 "cpu_load_exception_count" : 0, # 当前节点segment级别索引加载异常次数 "cpu_load_success_count" : 0, # 当前节点segment级别索引加载正常次数 "cpu_miss_count" : 0, # 当前节点segment级别索引缓存未命中次数 "cpu_query_memory_usage" : 0, # 当前节点堆外内存使用量,单位为KB "cpu_total_load_time" : 0 # 当前节点segment级别索引加载总耗时,单位为ms } } }
预加载向量索引
通过下面的API可以将指定索引的向量索引预先加载到堆外内存中。这一操作能够确保在后续查询中,这些索引可以被快速访问和使用,从而提高查询效率,减少查询延迟。
PUT /_vector/warmup/{index_name}
{index_name}为指定索引名称。
返回示例:
{ "_shards" : { "total" : 1, "successful" : 1, "failed" : 0 } }
清除缓存
当向量索引的总大小超过缓存限制时,系统会自动执行索引项的换进换出操作。然而,这种频繁的换进换出可能会影响集群的查询性能。通过下面的API可以手动清除不再使用的索引缓存,有助于释放堆外内存资源,确保热数据索引的查询性能不受影响。
- 清除全量索引缓存
PUT /_vector/clear/cache
- 清除指定索引缓存
PUT /_vector/clear/cache/{index_name}
返回示例:
{ "acknowledged" : "true" }