配置 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
-
在 AWS Management Console 中创建 IAM 角色或用户。
-
设置您的环境变量。如果您使用 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
-
使用
--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 连接到特定代理,并将该代理连接到基准测试工作负载。要添加代理
-
将您的代理 URL 添加到您的 shell 配置文件中
export http_proxy=http://proxy.proxy.org:4444/
-
源化您的 shell 配置文件并验证代理 URL 是否设置正确
source ~/.bash_profile ; echo $http_proxy
-
使用以下命令配置 Git 连接到您的代理。有关更多信息,请参阅 Git 文档。
git config --global http_proxy $http_proxy
-
使用
git clone
通过以下命令克隆工作负载仓库。如果代理配置正确,克隆将成功。git clone http://github.com/opensearch-project/opensearch-benchmark-workloads.git
-
最后,通过检查
/.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 文档
- 有关一般技巧和窍门,请使用 Python 日志记录指南。
- 有关文件格式,请参阅 Python 日志配置架构。
- 有关如何自定义日志输出写入位置的说明,请参阅 日志处理程序文档。
默认情况下,OpenSearch Benchmark 将所有输出记录到 ~/.benchmark/logs/benchmark.log
。