Link Search Menu Expand Document Documentation Menu

配置 OpenSearch Benchmark

OpenSearch Benchmark 配置数据存储在 ~/.benchmark/benchmark.ini 中,该文件在 OpenSearch Benchmark 首次运行时自动创建。

该文件分为以下几个部分,您可以根据集群的需求进行自定义。

元数据

此部分包含有关配置文件的元信息。

参数 类型 描述
config.version 整数 配置文件格式的版本。此属性由 OpenSearch Benchmark 管理,不应更改。

系统

此部分包含当前基准测试环境的全局信息。此信息在所有安装了 OpenSearch Benchmark 的机器上都应相同。

参数 类型 描述
env.name 字符串 当配置 OpenSearch 指标存储时,用作指标文档中元数据的基准测试环境名称。只允许使用字母数字字符。默认值为 local
available.cores 整数 确定可用的 CPU 核心数量。OpenSearch Benchmark 旨在为每个核心创建一个 asyncio 事件循环,并将其均匀地分配给所有客户端。默认为集群的逻辑 CPU 核心数量。
async.debug 布尔型 在 OpenSearch Benchmark 的 asyncio 事件循环上启用调试模式。默认值为 false
passenv 字符串 一个逗号分隔的环境变量名称列表,这些变量应传递给 OpenSearch 进行处理。

节点

此部分包含可以根据集群需求自定义的节点特定信息。

参数 类型 描述
root.dir 字符串 存储所有 OpenSearch Benchmark 数据的目录。OpenSearch Benchmark 假定对此目录及其所有子目录拥有控制权。
src.root.dir 字符串 调用 OpenSearch 源代码和任何 OpenSearch 插件的目录。仅与来自的基准测试相关。

此部分包含有关 OpenSearch 源代码树的更多详细信息。

参数 类型 描述
remote.repo.url URL 签出 OpenSearch 的 URL。默认值为 https://github.com/opensearch-project/OpenSearch.git
opensearch.src.subdir 字符串 OpenSearch 搜索树相对于 src.root.dir 的本地路径。默认值为 OpenSearch
缓存 布尔型 启用 OpenSearch 的内部源工件缓存,包括 opensearch*.tar.gz 和任何插件 zip 文件。工件根据其 Git 修订版本进行缓存。默认值为 true
cache.days 整数 工件应在源工件缓存中保留的天数。默认值为 7

基准测试

此部分包含可在 OpenSearch Benchmark 数据目录中自定义的设置。

参数 类型 描述
local.dataset.cache 字符串 存储基准测试数据集的目录。根据运行的基准测试,此目录可能包含数百 GB 的数据。默认路径为 $HOME/.benchmark/benchmarks/data

结果发布

此部分定义了基准测试指标的存储方式。

参数 类型 描述
datastore.type 字符串 如果设置为 in-memory,则在运行基准测试时所有指标都保留在内存中。如果设置为 opensearch,则所有指标将写入持久性指标存储,数据可供进一步分析。默认值为 in-memory
sample.queue.size 功能 可存储在 OpenSearch Benchmark 内存队列中的指标样本数量。默认值为 2^20
metrics.request.downsample.factor 整数 (默认值:1):确定在指标存储中保存多少服务时间和延迟样本。默认情况下,所有值都已保存。例如,如果您只想保留每第 100 个样本,请指定 100。这有助于避免在拥有许多客户端的基准测试中使指标存储过载。默认值为 1
output.processingtime 布尔型 如果设置为 true,OpenSearch 会在命令行报告中显示额外的指标处理时间。默认值为 false

datastore.type 参数

datastore.type 设置为 opensearch 时,可以自定义以下报告设置。

参数 类型 描述
datastore.host IP 地址 指标存储的主机名,例如 124.340.200.22
datastore.port 端口 指标存储的端口号,例如 9200
datastore.secure 布尔型 如果设置为 false,OpenSearch 假定为 HTTP 连接。如果设置为 true,则假定为 HTTPS 连接。
datastore.ssl.verification_mode 字符串 当设置为默认值 full 时,会检查指标存储的 SSL 证书。要禁用证书验证,请将此值设置为 none
datastore.ssl.certificate_authorities 字符串 确定证书颁发机构签名证书的本地文件系统路径。
datastore.user 用户名 设置指标存储的用户名
datastore.password 字符串 设置指标存储的密码。或者,可以使用 OSB_DATASTORE_PASSWORD 环境变量配置此密码,这样可以避免将凭据存储在纯文本文件中。如果两者都定义了密码,环境变量优先于配置文件。
datastore.probe.cluster_version 字符串 启用自动检测指标存储的版本。默认值为 true
datastore.number_of_shards 整数 opensearch-* 索引应拥有的主分片数量。在初始索引创建后对此设置的任何更新将仅应用于新的 opensearch-* 索引。默认值为 OpenSearch 静态索引值
datastore.number_of_replicas 整数 数据存储中每个主分片包含的副本数量。在初始索引创建后对此设置的任何更新将仅应用于新的 opensearch-* 索引。默认值为 OpenSearch 静态索引值

示例

您可以使用以下示例在集群中设置报告值。

此示例定义了本地网络中一个未受保护的指标存储

[results_publishing]
datastore.type = opensearch
datastore.host = 192.168.10.17
datastore.port = 9200
datastore.secure = false
datastore.user =
datastore.password =

此示例定义了与本地网络中带自签名证书的指标存储的安全连接

[results_publishing]
datastore.type = opensearch
datastore.host = 192.168.10.22
datastore.port = 9200
datastore.secure = true
datastore.ssl.verification_mode = none
datastore.user = user-name
datastore.password = the-password-to-your-cluster

工作负载

此部分定义了工作负载的检索方式。OpenSearch 使用 <<workload-repository-name>>.url 语法读取所有键,您可以使用 OpenSearch Benchmark CLI 的 --workload-repository=workload-repository-name" 选项进行选择。默认情况下,OpenSearch 使用 default.url https://github.com/opensearch-project/opensearch-benchmark-workloads 选择工作负载仓库。

默认值

此部分定义了某些 OpenSearch Benchmark CLI 参数的默认值。

参数 类型 描述
preserve_benchmark_candidate 布尔型 确定 OpenSearch 安装在基准测试后是默认保留还是清除。要为单个基准测试保留安装,请使用命令行标志 --preserve-install。默认值为 false

发行版

此部分定义了 OpenSearch 版本的分布方式。

参数 类型 描述
release.cache 布尔型 确定新发布的 OpenSearch 版本是否应在本地缓存。

使用 AWS Signature Version 4 运行 OpenSearch Benchmark

OpenSearch Benchmark 支持 AWS Signature Version 4 身份验证。要使用 AWS Signature Version 4 运行 OpenSearch Benchmark,您需要设置一个 AWS Identity and Access Management (IAM) 用户或角色,并使用 AWS Signature Version 4 身份验证为其提供对 OpenSearch 集群的访问权限。

是使用 IAM 角色还是用户取决于您的测试集群的访问管理要求。有关是使用 IAM 角色还是用户的更多信息,请参阅 何时创建 IAM 用户(而不是角色)

使用以下步骤设置 AWS Signature Version 4

  1. 在 AWS Management Console 中创建 IAM 角色或用户。

  2. 设置您的环境变量。如果您使用 Amazon OpenSearch Serverless 进行测试,请将 OSB_SERVICE 设置为 aoss

    • 对于 IAM 用户,配置以下环境变量
    export OSB_AWS_ACCESS_KEY_ID=<IAM USER AWS ACCESS KEY ID>
    export OSB_AWS_SECRET_ACCESS_KEY=<IAM USER AWS SECRET ACCESS KEY>
    export OSB_REGION=<YOUR REGION>
    export OSB_SERVICE=es
    

    • 对于 IAM 角色,配置以下环境变量
    export OSB_AWS_ACCESS_KEY_ID=<IAM Role AWS ACCESS KEY ID>
    export OSB_AWS_SECRET_ACCESS_KEY=<IAM Role AWS SECRET ACCESS KEY>
    export OSB_AWS_SESSION_TOKEN=<IAM Role SESSION TOKEN>
    export OSB_REGION=<YOUR REGION>
    export OSB_SERVICE=es
    

  3. 使用 --client-options=amazon_aws_log_in:environment 标志自定义并运行以下 execute-test 命令。此标志向 OpenSearch Benchmark 提供您的导出凭据的位置。

    opensearch-benchmark execute-test \
    --target-hosts=<CLUSTER ENDPOINT> \
    --pipeline=benchmark-only \
    --workload=geonames \
    --client-options=timeout:120,amazon_aws_log_in:environment \
    

代理配置

OpenSearch 会自动为您下载所有必要的代理数据,包括

  • 指定 --distribution-version=<OPENSEARCH-VERSION> 时的 OpenSearch 发行版。
  • 指定 Git 修订号时的 OpenSearch 源代码,例如 --revision=1e04b2w
  • OpenSearch GitHub 仓库跟踪的任何元数据。

自 OpenSearch Benchmark 0.5.0 起,仅支持 http_proxy

您可以使用 http_proxy 将 OpenSearch Benchmark 连接到特定代理,并将该代理连接到基准测试工作负载。要添加代理

  1. 将您的代理 URL 添加到您的 shell 配置文件中

    export http_proxy=http://proxy.proxy.org:4444/
    
  2. 源化您的 shell 配置文件并验证代理 URL 是否设置正确

    source ~/.bash_profile ; echo $http_proxy
    
  3. 使用以下命令配置 Git 连接到您的代理。有关更多信息,请参阅 Git 文档

    git config --global http_proxy $http_proxy
    
  4. 使用 git clone 通过以下命令克隆工作负载仓库。如果代理配置正确,克隆将成功。

    git clone http://github.com/opensearch-project/opensearch-benchmark-workloads.git
    
  5. 最后,通过检查 /.benchmark/logs/benchmark.log 日志来验证 OpenSearch Benchmark 是否可以连接到代理服务器。当 OpenSearch Benchmark 启动时,您应该在日志顶部看到以下内容

     Connecting via proxy URL [http://proxy.proxy.org:4444/] to the Internet (picked up from the environment variable [http_proxy]).
    

日志记录

OpenSearch Benchmark 的日志可以在 ~/.benchmark/logging.json 文件中配置。有关如何格式化日志文件的更多信息,请参阅以下 Python 文档

默认情况下,OpenSearch Benchmark 将所有输出记录到 ~/.benchmark/logs/benchmark.log