execute-test
无论您使用的是随附的 OpenSearch 基准测试工作负载 还是 自定义工作负载,都可以使用 execute-test
命令根据所选工作负载收集 OpenSearch 集群的性能数据。
用法
以下示例在测试模式下使用 geonames
工作负载执行测试
opensearch-benchmark execute-test --workload=geonames --test-mode
测试运行后,OpenSearch Benchmark 会返回基准测试指标的摘要。
------------------------------------------------------
_______ __ _____
/ ____(_)___ ____ _/ / / ___/_________ ________
/ /_ / / __ \/ __ `/ / \__ \/ ___/ __ \/ ___/ _ \
/ __/ / / / / / /_/ / / ___/ / /__/ /_/ / / / __/
/_/ /_/_/ /_/\__,_/_/ /____/\___/\____/_/ \___/
------------------------------------------------------
| Metric | Task | Value | Unit |
|-------------------------------:|---------------------:|----------:|-------:|
| Total indexing time | | 28.0997 | min |
| Total merge time | | 6.84378 | min |
| Total refresh time | | 3.06045 | min |
| Total flush time | | 0.106517 | min |
| Total merge throttle time | | 1.28193 | min |
| Median CPU usage | | 471.6 | % |
| Total Young Gen GC | | 16.237 | s |
| Total Old Gen GC | | 1.796 | s |
| Index size | | 2.60124 | GB |
| Total written | | 11.8144 | GB |
| Heap used for segments | | 14.7326 | MB |
| Heap used for doc values | | 0.115917 | MB |
| Heap used for terms | | 13.3203 | MB |
| Heap used for norms | | 0.0734253 | MB |
| Heap used for points | | 0.5793 | MB |
| Heap used for stored fields | | 0.643608 | MB |
| Segment count | | 97 | |
| Min Throughput | index-append | 31925.2 | docs/s |
| Median Throughput | index-append | 39137.5 | docs/s |
| Max Throughput | index-append | 39633.6 | docs/s |
| 50.0th percentile latency | index-append | 872.513 | ms |
| 90.0th percentile latency | index-append | 1457.13 | ms |
| 99.0th percentile latency | index-append | 1874.89 | ms |
| 100th percentile latency | index-append | 2711.71 | ms |
| 50.0th percentile service time | index-append | 872.513 | ms |
| 90.0th percentile service time | index-append | 1457.13 | ms |
| 99.0th percentile service time | index-append | 1874.89 | ms |
| 100th percentile service time | index-append | 2711.71 | ms |
| ... | ... | ... | ... |
| ... | ... | ... | ... |
| Min Throughput | painless_dynamic | 2.53292 | ops/s |
| Median Throughput | painless_dynamic | 2.53813 | ops/s |
| Max Throughput | painless_dynamic | 2.54401 | ops/s |
| 50.0th percentile latency | painless_dynamic | 172208 | ms |
| 90.0th percentile latency | painless_dynamic | 310401 | ms |
| 99.0th percentile latency | painless_dynamic | 341341 | ms |
| 99.9th percentile latency | painless_dynamic | 344404 | ms |
| 100th percentile latency | painless_dynamic | 344754 | ms |
| 50.0th percentile service time | painless_dynamic | 393.02 | ms |
| 90.0th percentile service time | painless_dynamic | 407.579 | ms |
| 99.0th percentile service time | painless_dynamic | 430.806 | ms |
| 99.9th percentile service time | painless_dynamic | 457.352 | ms |
| 100th percentile service time | painless_dynamic | 459.474 | ms |
----------------------------------
[INFO] SUCCESS (took 2634 seconds)
----------------------------------
选项
使用以下选项根据您的用例自定义 execute-test
命令。本节中的选项按其用例分类。
通用设置
以下选项决定了每个测试的运行方式和结果的显示方式
--test-mode
:在测试模式下运行给定工作负载,这在检查工作负载是否存在错误时非常有用。--user-tag
:定义用户特定的键值对,用作指标记录中的元信息,例如intention:baseline-ticket-12345
。--results-format
:定义命令行结果的输出格式,可以是markdown
或csv
。默认为markdown
。--results-number-align
:定义当compare
命令输出结果时,列数字的对齐方式。默认为right
。--results-file
:当提供文件路径时,将比较结果写入指定路径中的文件。--show-in-results
:确定是否将比较结果包含在结果文件中。
分发版
以下选项设置基准测试使用的 OpenSearch 版本和 OpenSearch 插件
--distribution-version
:根据版本号下载指定的 OpenSearch 分发版。有关已发布的 OpenSearch 版本的列表,请参阅 版本历史记录。--distribution-repository
:定义应从何处下载 OpenSearch 分发版的存储库。默认为release
。--revision
:定义用于运行基准测试的当前源代码修订版本。默认为current
。current
:使用基于您的 OpenSearch 分发版的源代码树的当前修订版本。latest
:从源代码树的主分支获取最新修订版本。- 您还可以使用源代码树中的时间戳或提交 ID。使用时间戳时,请指定
@ts
,其中“ts”是有效的 ISO 8601 时间戳,例如@2013-07-27T10:37:00Z
。
--opensearch-plugins
:定义要安装的 OpenSearch 插件。默认情况下不安装任何插件。--plugin-params:
:定义一个逗号分隔的键值对列表,这些键值对将原样注入所有插件作为变量。--runtime-jdk
:要使用的 JDK 的主要版本。--client-options
:定义要使用的客户端的逗号分隔列表。所有选项都传递给 OpenSearch Python 客户端。默认为timeout:60
。
集群
以下选项与基准测试的目标集群有关。
--target-hosts
:定义一个逗号分隔的主机端口对列表,如果使用管道benchmark-only
,则应将其作为目标。默认为localhost:9200
。
分布式工作负载生成
以下选项帮助那些希望使用多个主机向基准测试集群生成负载的用户
--load-worker-coordinator-hosts
:定义一个逗号分隔的主机列表,用于协调负载。默认为localhost
。--enable-worker-coordinator-profiling
:启用对 OpenSearch Benchmark 工作协调器性能的分析。默认为false
。
资源调配
以下选项有助于自定义 OpenSearch Benchmark 如何调配 OpenSearch 和工作负载
--provision-config-repository
:定义 OpenSearch Benchmark 从中加载provision-configs
和provision-config-instances
的存储库。--provision-config-path
:定义--provision-config-instance
和要使用的任何 OpenSearch 插件配置的路径。--provision-config-revision
:定义 OpenSearch Benchmark 应使用的provision-config
中的特定 Git 修订版本。--provision-config-instance
:定义要使用的--provision-config-instance
。您可以使用命令opensearch-benchmark list provision-config-instances
查看可能的配置实例。--provision-config-instance-params
:一个逗号分隔的键值对列表,原样注入作为provision-config-instance
的变量。
工作负载
以下选项确定用于运行测试的工作负载
--workload-repository
:定义 OpenSearch Benchmark 从中加载工作负载的存储库。--workload-path
: 定义已下载或自定义工作负载的路径。--workload-revision
: 定义 OpenSearch Benchmark 应使用的来自工作负载源树的特定修订版本。--workload
:根据工作负载名称定义要使用的工作负载。您可以使用opensearch-benchmark list workloads
查看预加载工作负载的列表。
测试过程
以下选项定义了测试使用的测试过程以及过程中包含的操作
--test-execution-id
:定义此测试运行的唯一 ID。定义每个工作负载要使用的测试过程。您可以通过在info
命令中指定工作负载来查找工作负载支持的测试过程列表,例如opensearch-benchmark info --workload=<workload_name>
。要查找特定测试过程的信息,请使用命令opensearch-benchmark info --workload=<workload_name> --test-procedure=<test-procedure>
。--include-tasks
:定义一个逗号分隔的要运行的测试过程任务列表。默认情况下,运行测试过程数组中列出的所有任务。--exclude-tasks
:定义一个逗号分隔的不要运行的测试过程任务列表。--enable-assertions
:启用任务的断言检查。默认为false
。
管道
的 --pipeline
选项选择要运行的管道。您可以通过运行 opensearch-benchmark list pipelines
查找 OpenSearch Benchmark 支持的管道列表。
遥测
以下选项在 OpenSearch Benchmark 上启用遥测设备
--telemetry
:当设备以逗号分隔列表的形式提供时,启用提供的遥测设备。您可以使用opensearch-benchmark list telemetry
查找可能的遥测设备列表。--telemetry-params
:定义一个逗号分隔的键值对列表,这些键值对将原样注入遥测设备作为参数。
错误
以下选项设置 OpenSearch Benchmark 在运行测试时如何处理错误
--on-error
:控制 OpenSearch Benchmark 如何响应错误。默认为continue
。continue
:即使出现错误也继续运行测试。abort
:发生错误时中止测试。
--preserve-install
:保留基准测试候选及其索引。默认为false
。--kill-running-processes
:当设置为true
时,停止当前运行的任何 OpenSearch Benchmark 进程,并允许 OpenSearch Benchmark 继续运行。默认为false
。