首页 > 解决方案 > 在 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 不缓存查询结果,并且在禁用摘要缓存的情况下根本没有缓存。

Vespa(与许多其他数据库一样)需要一段时间才能“预热”——由于 Java 代码的 JIT 编译、OS 磁盘缓存、CPU 指令/数据缓存等影响。您应该首先进行足够的查询,以使查询延迟达到稳定状态。


推荐阅读