概念
在开始使用 OpenSearch Benchmark 之前,了解以下概念将有助于您有效地设计、运行和分析基准测试,以评估 OpenSearch 在不同场景下的性能。
基准测试架构
下图展示了 OpenSearch Benchmark 在针对本地主机运行时的工作方式。
.
核心概念和定义
- 工作负载:一组包含一个或多个基准测试场景的集合,它使用特定的文档语料库对您的集群执行基准测试。文档语料库包含工作负载运行时调用的所有索引、数据文件和操作。您可以使用
opensearch-benchmark list workloads
列出可用的工作负载,或者在 OpenSearch Benchmark 工作负载仓库中查看任何包含的工作负载。有关工作负载元素的更多信息,请参阅工作负载剖析。有关构建自定义工作负载的信息,请参阅创建自定义工作负载。一个工作负载通常包括以下内容- 一个或多个摄取到索引中的数据流。
- 作为基准测试一部分调用的查询和操作集。
- 管道(Pipeline):在工作负载运行前后发生的一系列步骤,用于确定基准测试结果。OpenSearch Benchmark 支持三种管道:
from-sources
:构建并配置 OpenSearch,运行基准测试,然后发布结果。from-distribution
:下载 OpenSearch 发行版,配置它,运行基准测试,然后发布结果。benchmark-only
:默认管道。假定 OpenSearch 实例已在运行,在此实例上运行基准测试,然后发布结果。
- 测试:OpenSearch Benchmark 二进制文件的一次单独调用。
测试概念
在每次测试结束时,OpenSearch Benchmark 会生成一个表格,总结以下内容:
下图说明了在涉及 OpenSearch 集群、OpenSearch 客户端和 OpenSearch Benchmark 的请求生命周期中,表中每个组件是如何测量的。
OpenSearch Benchmark 与传统客户端-服务器系统的区别
虽然吞吐量的定义与其他客户端-服务器系统保持一致,但在 OpenSearch Benchmark 的上下文中,服务时间
和延迟
的定义与大多数客户端-服务器系统有所不同。下表比较了 OpenSearch Benchmark 中服务时间和延迟的定义与客户端-服务器系统的常见定义。
度量 | 常见定义 | OpenSearch Benchmark 定义 |
---|---|---|
吞吐量 | 在给定时间内完成的操作数量。 | 在给定时间内完成的操作数量。 |
服务时间 | 服务器处理请求所需的时间,从接收请求到返回响应。它包括在服务器端队列中等待的时间,但不包括网络延迟、负载均衡器开销以及反序列化/序列化。 | opensearch-py 向 OpenSearch 集群发送请求并接收响应所需的时间。它包括服务器处理请求所需的时间,并且还包括网络延迟、负载均衡器开销以及反序列化/序列化。 |
延迟 | 总时间,包括服务时间以及请求在响应前等待的时间。 | 根据用户设置的目标吞吐量 ,请求在接收响应前等待的总时间,以及在请求发送前发生的任何其他延迟。 |
有关 OpenSearch Benchmark 中服务时间和延迟的更多信息,请参阅服务时间和延迟部分。
处理时间
处理时间是指 OpenSearch Benchmark 在请求生命周期中执行的任何额外开销任务,例如设置请求上下文管理器或调用方法将请求传递给 OpenSearch 客户端。这与服务时间形成对比,服务时间仅计算请求发送和 OpenSearch 客户端接收响应之间的时间差。
耗时
耗时衡量集群在服务器端处理请求所花费的时间。它不包括请求从客户端传输到集群或响应从集群传输到客户端所需的时间。
服务时间
除了提取请求的耗时外,OpenSearch Benchmark 无法深入了解 OpenSearch 处理请求所需的时间。它通过调用 opensearch-py
函数来与 OpenSearch 集群通信。
OpenSearch Benchmark 测量服务时间,即 opensearch-py
客户端向 OpenSearch 集群发送请求并接收响应之间的时间。与传统服务时间定义不同,OpenSearch Benchmark 的定义包括开销,例如网络延迟、负载均衡器开销或反序列化/序列化。下图显示了传统定义和 OpenSearch Benchmark 定义之间的区别。
延迟
延迟衡量请求在接收响应之前等待的总时间,以及在发送请求之前发生的任何延迟。在大多数情况下,延迟的测量方式与服务时间相同,除非您在吞吐量限制模式下进行测试。在这种情况下,延迟被测量为服务时间加上请求在队列中等待的时间。
吞吐量
吞吐量衡量 OpenSearch Benchmark 发送请求的速率,假定响应会立即返回。