我们创建了一个自定义搜索器。我们的文档大小在 400 000 左右。延迟保持在 100 毫秒以内,但是在我们进行负载测试时,它的 QPS 没有超过 80,延迟也增加了 4-5 秒。我们在组分布中使用 9 节点集群(c5.2xlarge - 8vcpu 和 16GB RAM)(3 个大小为 2 的组,带有复制 3 和可搜索副本 3)。我们尝试了不同的发行版,但无法提高速度。我们尝试在大型计算实例中使用不同的调整参数值
<requestthreads>
<search>64/128</search>
<persearch>1</persearch>
<summary>16</summary>
</requestthreads>
找到瓶颈的更好方法应该是什么?这么大的集群,500k条记录应该可以达到500QPS。
最佳答案
如果您还没有阅读此内容:https://docs.vespa.ai/documentation/performance/sizing-search.html
您需要测量以确定您的查询消耗了多少资源。这应该让您了解您可以处理多少吞吐量以及在哪里进行调整是有意义的。然后,您可以在各种负载下运行负载测试以验证行为并找到最大吞吐量。在 80 qps 时,该系统处于过载状态,这对于观察系统没有好处,因为您不想在生产中过载运行。
如果您愿意,可以在 https://cloud.vespa.ai 上部署您的应用程序而不是自己运行它,那么我们可以通过从我们的角度来看它,为您提供更好的见解。
关于java - 将 Vespa 扩展为 500 QPS 以进行搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60129748/