java - 将 Vespa 扩展为 500 QPS 以进行搜索

标签 java horizontal-scaling vespa

我们创建了一个自定义搜索器。我们的文档大小在 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/

相关文章:

java - 如何在 Java8 Lambda 中编写这个 for 循环

hadoop - hbase 真的可以线性扩展吗?

language-agnostic - 什么时候开始考虑扩展的好时机?

docker - Vespa应用程序之间的互通

java - 如何将异常类型与其消息分开

java - 全局捕获异常

java - 比较java中的两个字符串并识别重复的单词

php - Laravel 下的负载均衡器 + 集中式 Redis session 服务器

vespa - ES "minimum_should_match"查询如何转换为 vespa 查询?

docker - 每个主机有多个vespa docker容器?