vespa - 在 vespa 中禁用缓存
问题描述
我正在对使用 Vespa 作为数据库的应用程序进行负载测试。我有一些我正在测试的样本记录。现在,当我第一次运行负载测试时,Vespa 缓存了影响我们下一个测试场景结果的查询结果。
有没有办法让我们可以禁用查询结果缓存以进行测试,然后再次启用它。
我希望在第二次运行相同的查询后从 Vespa 获得相同的响应时间。
即使我已经在我们的 Vespa 应用程序的 services.xml 文件中实现了以下代码。第二次查询的响应时间发生了巨大变化。
<content id="content" version="1.0">
<engine>
<proton>
<tuning>
<searchnode>
<summary>
<store>
<cache>
<maxsize>0</maxsize>
<compression>
<type>none</type>
</compression>
</cache>
</store>
</summary>
</searchnode>
</tuning>
</proton>
</engine>
...
</content>
解决方案
Vespa 不缓存查询结果,并且在禁用摘要缓存的情况下根本没有缓存。
Vespa(与许多其他数据库一样)需要一段时间才能“预热”——由于 Java 代码的 JIT 编译、OS 磁盘缓存、CPU 指令/数据缓存等影响。您应该首先进行足够的查询,以使查询延迟达到稳定状态。
推荐阅读
- c# - Unity 中的 SQLite 数据库文件损坏
- javascript - 使用 AWS Lambda 自动创建静态站点客户端页面
- css - flexbox 对齐从中心偏移的项目,没有填充物
- c - realloc 将所有索引设置为相同的数据
- ios - 自动续订订阅错误的到期日期时间
- javascript - ShopPad的Infinite Options中是否有JavaScript的回调功能?
- php - 如何设置两个环境变量然后运行php-cgi?
- python - 从给定的字符可能性中列出所有可能的字符串
- jquery - 如何概括这些jquery函数?
- python - Pandas:取消嵌套/扁平化分层数据框