Link Search Menu Expand Document Documentation Menu

目标吞吐量

目标吞吐量是理解 OpenSearch 基准测试中延迟定义的关键。目标吞吐量是 OpenSearch 基准测试发出请求的速率,假设响应会立即返回。target-throughput是一个常见的工作负载参数,可以为每个测试设置,并以每秒操作数衡量。

OpenSearch 基准测试有两种测试模式,这两种模式都与吞吐量、延迟和服务时间有关

基准测试模式

target-throughput设置为0时,OpenSearch 基准测试延迟测试以基准测试模式执行。在此模式下,OpenSearch 客户端会尽快向 OpenSearch 集群发送请求。集群收到上一个请求的响应后,OpenSearch 基准测试会立即向 OpenSearch 客户端发送下一个请求。在此测试模式下,延迟与服务时间相同。

OpenSearch 基准测试每个客户端一次发出一个请求。客户端的数量由工作负载参数中的search-clients设置确定。

吞吐量节流模式

如果target-throughput未设置为0,则 OpenSearch 基准测试会根据target-throughput发出下一个请求,假设响应会立即返回。

吞吐量衡量 OpenSearch 基准测试发出请求的速率,假设响应会立即返回。要配置请求速率,您可以将target-throughput工作负载参数设置为每个测试所需的每秒操作数。

当您想要模拟部署生产集群时可能遇到的流量类型时,请将基准测试中的target-throughput设置为与您估计的生产集群可能接收的请求数量相匹配。以下示例展示了target-throughput设置如何影响延迟测量。

示例 A

以下图表说明了在预期请求响应时间为 200 毫秒以及以下设置的情况下如何计算延迟

  • search-clients设置为1
  • target-throughput设置为每秒1次操作。

当请求耗时超过 200 毫秒时,例如当请求耗时 1110 毫秒而不是 400 毫秒时,OpenSearch 基准测试将根据target-throughput在 4.10 秒发送原本应在 4.00 秒发生的下一个请求。4.10 秒请求之后的所有请求都尝试与target-throughput设置重新同步,如下图所示

在测量总延迟时,OpenSearch 基准测试会包括所有已执行的请求。除了以下两个请求外,所有请求的延迟均为 200 毫秒

  • 耗时 1100 毫秒的请求。
  • 原本应在 4.00 秒开始的后续请求。此请求延迟了 100 毫秒(在下图中由橙色区域表示),响应时间为 200 毫秒。在计算此请求的延迟时,OpenSearch 基准测试会将延迟的开始时间与响应时间结合起来考虑。此请求的延迟为300 毫秒

示例 B

在此示例中,OpenSearch 基准测试假设延迟为 200 毫秒,并使用以下延迟设置

  • search_clients设置为1
  • target-throughput设置为每秒10次操作。

下图显示了 OpenSearch 基准测试构建的带有预期响应时间的调度。

然而,如果假设所有响应的延迟都为 200 毫秒,则每秒 10 次操作是不可能实现的。因此,OpenSearch 基准测试能够达到的最高吞吐量是每秒 5 次操作,如下图所示。

OpenSearch 基准测试没有考虑此限制,并继续尝试达到每秒 10 次操作的target-throughput。因此,每个请求的延迟开始累积,如下图所示。

通过结合服务时间和每个操作的延迟,每个操作的延迟测量结果如下

  • 操作 1 为 200 毫秒
  • 操作 2 为 300 毫秒
  • 操作 3 为 400 毫秒
  • 操作 4 为 500 毫秒
  • 操作 5 为 600 毫秒

这种延迟累积持续下去,每个后续请求的延迟增加 100 毫秒。

建议

如前面的示例所示,您应该了解每个任务的平均服务时间,并提供一个考虑服务时间的target-throughput。OpenSearch 基准测试的延迟是根据用户设置的target-throughput计算的;因此,延迟可以重新定义为基于吞吐量的延迟

剩余 350 字符

有问题?

想贡献吗?