基准测试应该包含冷启动和热缓存场景,因为它们代表了系统性能的真实世界可变性。冷启动场景模拟了系统没有缓存数据的首次查询,迫使其初始化索引等资源、将数据加载到内存中或编译执行计划。热缓存场景模拟重复查询,其中数据已缓存,允许系统跳过初始化步骤。测量两者可以确保对延迟的平衡视图:冷启动揭示了基线开销,而热缓存显示了系统“预热”后的优化性能。例如,向量数据库可能在首次搜索(冷启动)时花费 500 毫秒,这是由于索引加载造成的,但在后续查询(热缓存)中降至 50 毫秒,因为索引已驻留在内存中。
包括这两种场景有助于识别每个阶段特有的瓶颈。冷启动测试暴露了初始化成本,例如加载向量索引的磁盘 I/O、分布式系统中从远程节点获取数据的网络延迟或基于机器学习的搜索系统中模型预热。例如,存储在磁盘上的基于图的向量索引可能需要在冷启动期间花费大量时间才能映射到内存中。另一方面,热缓存测试突出了搜索算法和缓存机制的效率。如果热查询仍然显示高延迟,则可能表明代码路径优化不佳或缓存策略效率低下。例如,使用分层可导航小世界 (HNSW) 图的向量搜索系统可能显示快速的热缓存性能,但在图未预加载的情况下,冷启动期间会受到影响。
从开发人员的角度来看,对这两种场景进行基准测试可以指导优化优先级。冷启动结果可能会导致在启动时预加载常用索引或使用延迟加载技术。热缓存测量可以推动查询执行计划或缓存淘汰策略的改进。例如,一个团队可能会发现启用内存映射文件可以通过避免完全索引加载来减少冷启动延迟,而调整缓存大小限制可以提高热缓存命中率。如果不测试两者,开发人员可能会冒着过度优化一种场景而牺牲另一种场景的风险。仅针对热缓存调整的系统在零星使用模式下可能会失败,而仅针对冷启动优化的系统可能缺乏高吞吐量工作负载的可扩展性。平衡的基准测试可确保实际的性能期望和明智的权衡。