运行工作负载
在您完全理解 OpenSearch Benchmark 工作负载的各个组成部分后,您可以运行您的第一个工作负载。
步骤 1:查找工作负载名称
要了解 OpenSearch Benchmark 中包含的标准工作负载,请使用以下命令
opensearch-benchmark list workloads
OpenSearch Benchmark 支持的所有工作负载列表将显示。查看列表并选择与您的集群用例最相似的工作负载。
步骤 2:运行测试
选择工作负载后,您可以使用 opensearch-benchmark execute-test
命令调用该工作负载。将 --target-host
替换为您的集群的 host:port
对,并将 --client-options
替换为访问集群所需的任何授权选项。以下示例在本地主机上运行 nyc_taxis
工作负载,用于测试目的。
如果您想在外部集群上运行测试,请参阅在您自己的集群上运行工作负载。
opensearch-benchmark execute-test --pipeline=benchmark-only --workload=nyc_taxis --target-host=https://:9200 --client-options=basic_auth_user:admin,basic_auth_password:admin,verify_certs:false
测试结果将出现在 execute-test
命令中由 --output-path
选项设置的目录中。
测试模式
如果您想以测试模式运行测试,以确保您的工作负载按预期运行,请将 --test-mode
选项添加到 execute-test
命令中。测试模式仅从提供的每个索引中摄取前 1,000 个文档,并对它们运行查询操作。
步骤 3:验证测试
运行 OpenSearch Benchmark 测试后,请执行以下步骤以验证其是否正常运行
- 记下您计划进行基准测试的 OpenSearch 或 OpenSearch Dashboards 索引中的文档数量。
- 在 OpenSearch Benchmark 返回的结果中,比较您特定工作负载的
workload.json
文件,并验证文档计数是否与文档数量匹配。例如,根据 nyc_taxisworkload.json
文件,您应该会在集群中看到165346692
个文档。
预期结果
基准测试完成后,OSB 返回以下响应
------------------------------------------------------
_______ __ _____
/ ____(_)___ ____ _/ / / ___/_________ ________
/ /_ / / __ \/ __ `/ / \__ \/ ___/ __ \/ ___/ _ \
/ __/ / / / / / /_/ / / ___/ / /__/ /_/ / / / __/
/_/ /_/_/ /_/\__,_/_/ /____/\___/\____/_/ \___/
------------------------------------------------------
| Metric | Task | Value | Unit |
|---------------------------------------------------------------:|-------------------------------------------:|------------:|-------:|
| Cumulative indexing time of primary shards | | 0.02655 | min |
| Min cumulative indexing time across primary shards | | 0 | min |
| Median cumulative indexing time across primary shards | | 0.00176667 | min |
| Max cumulative indexing time across primary shards | | 0.0140333 | min |
| Cumulative indexing throttle time of primary shards | | 0 | min |
| Min cumulative indexing throttle time across primary shards | | 0 | min |
| Median cumulative indexing throttle time across primary shards | | 0 | min |
| Max cumulative indexing throttle time across primary shards | | 0 | min |
| Cumulative merge time of primary shards | | 0.0102333 | min |
| Cumulative merge count of primary shards | | 3 | |
| Min cumulative merge time across primary shards | | 0 | min |
| Median cumulative merge time across primary shards | | 0 | min |
| Max cumulative merge time across primary shards | | 0.0102333 | min |
| Cumulative merge throttle time of primary shards | | 0 | min |
| Min cumulative merge throttle time across primary shards | | 0 | min |
| Median cumulative merge throttle time across primary shards | | 0 | min |
| Max cumulative merge throttle time across primary shards | | 0 | min |
| Cumulative refresh time of primary shards | | 0.0709333 | min |
| Cumulative refresh count of primary shards | | 118 | |
| Min cumulative refresh time across primary shards | | 0 | min |
| Median cumulative refresh time across primary shards | | 0.00186667 | min |
| Max cumulative refresh time across primary shards | | 0.0511667 | min |
| Cumulative flush time of primary shards | | 0.00963333 | min |
| Cumulative flush count of primary shards | | 4 | |
| Min cumulative flush time across primary shards | | 0 | min |
| Median cumulative flush time across primary shards | | 0 | min |
| Max cumulative flush time across primary shards | | 0.00398333 | min |
| Total Young Gen GC time | | 0 | s |
| Total Young Gen GC count | | 0 | |
| Total Old Gen GC time | | 0 | s |
| Total Old Gen GC count | | 0 | |
| Store size | | 0.000485923 | GB |
| Translog size | | 2.01873e-05 | GB |
| Heap used for segments | | 0 | MB |
| Heap used for doc values | | 0 | MB |
| Heap used for terms | | 0 | MB |
| Heap used for norms | | 0 | MB |
| Heap used for points | | 0 | MB |
| Heap used for stored fields | | 0 | MB |
| Segment count | | 32 | |
| Min Throughput | index | 3008.97 | docs/s |
| Mean Throughput | index | 3008.97 | docs/s |
| Median Throughput | index | 3008.97 | docs/s |
| Max Throughput | index | 3008.97 | docs/s |
| 50th percentile latency | index | 351.059 | ms |
| 100th percentile latency | index | 365.058 | ms |
| 50th percentile service time | index | 351.059 | ms |
| 100th percentile service time | index | 365.058 | ms |
| error rate | index | 0 | % |
| Min Throughput | wait-until-merges-finish | 28.41 | ops/s |
| Mean Throughput | wait-until-merges-finish | 28.41 | ops/s |
| Median Throughput | wait-until-merges-finish | 28.41 | ops/s |
| Max Throughput | wait-until-merges-finish | 28.41 | ops/s |
| 100th percentile latency | wait-until-merges-finish | 34.7088 | ms |
| 100th percentile service time | wait-until-merges-finish | 34.7088 | ms |
| error rate | wait-until-merges-finish | 0 | % |
| Min Throughput | percolator_with_content_president_bush | 36.09 | ops/s |
| Mean Throughput | percolator_with_content_president_bush | 36.09 | ops/s |
| Median Throughput | percolator_with_content_president_bush | 36.09 | ops/s |
| Max Throughput | percolator_with_content_president_bush | 36.09 | ops/s |
| 100th percentile latency | percolator_with_content_president_bush | 35.9822 | ms |
| 100th percentile service time | percolator_with_content_president_bush | 7.93048 | ms |
| error rate | percolator_with_content_president_bush | 0 | % |
[...]
| Min Throughput | percolator_with_content_ignore_me | 16.1 | ops/s |
| Mean Throughput | percolator_with_content_ignore_me | 16.1 | ops/s |
| Median Throughput | percolator_with_content_ignore_me | 16.1 | ops/s |
| Max Throughput | percolator_with_content_ignore_me | 16.1 | ops/s |
| 100th percentile latency | percolator_with_content_ignore_me | 131.798 | ms |
| 100th percentile service time | percolator_with_content_ignore_me | 69.5237 | ms |
| error rate | percolator_with_content_ignore_me | 0 | % |
| Min Throughput | percolator_no_score_with_content_ignore_me | 29.37 | ops/s |
| Mean Throughput | percolator_no_score_with_content_ignore_me | 29.37 | ops/s |
| Median Throughput | percolator_no_score_with_content_ignore_me | 29.37 | ops/s |
| Max Throughput | percolator_no_score_with_content_ignore_me | 29.37 | ops/s |
| 100th percentile latency | percolator_no_score_with_content_ignore_me | 45.5703 | ms |
| 100th percentile service time | percolator_no_score_with_content_ignore_me | 11.316 | ms |
| error rate | percolator_no_score_with_content_ignore_me | 0 | % |
--------------------------------
[INFO] SUCCESS (took 18 seconds)
--------------------------------
在外部集群上运行工作负载
现在您已熟悉在本地集群上运行 OpenSearch Benchmark,您可以按照以下步骤在您的外部集群上运行它
- 将
https://:9200
替换为您的目标集群端点。这可以是统一资源标识符 (URI),例如https://search.mydomain.com
,或者是一个HOST:PORT
规范。 - 如果集群配置了基本身份验证,请将命令行中的用户名和密码替换为相应的凭据。
- 如果您没有将
localhost
指定为目标集群,请移除verify_certs:false
指令。此指令仅对没有 SSL 证书的集群是必需的。 - 如果您使用
HOST:PORT
规范并计划使用 SSL 或 TLS,请指定https://
或将use_ssl:true
指令添加到--client-options
字符串选项中。 - 移除
--test-mode
标志以运行完整工作负载而不是缩写测试。
您可以复制以下命令模板以在您自己的终端中使用
opensearch-benchmark execute-test --pipeline=benchmark-only --workload=nyc_taxis --target-host=<OpenSearch Cluster Endpoint> --client-options=basic_auth_user:admin,basic_auth_password:admin