Link Search Menu Expand Document Documentation Menu

安装 OpenSearch Benchmark

您可以在运行 Linux 或 macOS 的主机上直接安装 OpenSearch Benchmark,也可以在任何兼容主机上的 Docker 容器中运行 OpenSearch Benchmark。本页提供了关于 OpenSearch Benchmark 主机的一般注意事项以及安装 OpenSearch Benchmark 的说明。

选择合适的硬件

OpenSearch Benchmark 可用于为测试提供 OpenSearch 节点。如果您打算使用 OpenSearch Benchmark 在您的环境中配置节点,则请在集群中的每个主机上直接安装 OpenSearch Benchmark。此外,您必须为 OpenSearch 配置集群中的每个主机。有关重要主机设置的指南,请参阅安装 OpenSearch

请记住,当您在 Docker 容器中运行 OpenSearch Benchmark 时,它无法用于配置 OpenSearch 节点。如果您想使用 OpenSearch Benchmark 配置节点,或者想通过 OpenSearch Benchmark 守护程序分发基准测试工作负载,则必须使用 Python 和 pip 直接在每个主机上安装 OpenSearch Benchmark。

选择主机时,您还应该考虑要运行哪些工作负载。要查看默认基准测试工作负载列表,请访问 GitHub 上的 opensearch-benchmark-workloads 存储库。一般来说,请确保 OpenSearch Benchmark 主机有足够的可用存储空间来存储压缩数据和 OpenSearch Benchmark 安装后的完全解压缩数据语料库。

如果您想使用默认工作负载进行基准测试,请使用下表,通过将压缩大小与未压缩大小相加来确定所需的大致最小可用空间量。

工作负载名称 文档数量 压缩大小 未压缩大小
eventdata 20,000,000 756.0 MB 15.3 GB
geonames 11,396,503 252.9 MB 3.3 GB
geopoint 60,844,404 482.1 MB 2.3 GB
geopointshape 60,844,404 470.8 MB 2.6 GB
geoshape 60,523,283 13.4 GB 45.4 GB
http_logs 247,249,096 1.2 GB 31.1 GB
nested 11,203,029 663.3 MB 3.4 GB
noaa 33,659,481 949.4 MB 9.0 GB
nyc_taxis 165,346,692 4.5 GB 74.3 GB
percolator 2,000,000 121.1 kB 104.9 MB
pmc 574,199 5.5 GB 21.7 GB
so 36,062,278 8.9 GB 33.1 GB

您的 OpenSearch Benchmark 主机应使用固态硬盘 (SSD) 进行存储,因为它们的读写操作速度比传统机械硬盘快得多。机械硬盘可能会引入性能瓶颈,这会使基准测试结果不可靠且不一致。

在 Linux 和 macOS 上安装

如果您想在 Docker 容器中运行 OpenSearch Benchmark,请参阅使用 Docker 安装。OpenSearch Benchmark Docker 镜像包含所有必需的软件,因此无需额外步骤。

要在 Linux 或 macOS 等 UNIX 主机上直接安装 OpenSearch Benchmark,请确保您已安装 Python 3.8 或更高版本

如果您需要安装 Python 的帮助,请参考官方 Python 安装和使用文档。

检查软件依赖项

在开始安装 OpenSearch Benchmark 之前,请检查以下软件依赖项。

使用 pyenv 在您的主机上管理多个 Python 版本。如果您的“系统”Python 版本低于 3.8,这将特别有用。

  • 检查是否安装了 Python 3.8 或更高版本

    python3 --version
    

  • 检查 pip 是否已安装且功能正常

    pip --version
    

  • 可选:使用以下命令检查您安装的 git 版本是否为 Git 1.9 或更高版本git 不是 OpenSearch Benchmark 安装的必需项,但如果您想从存储库中获取基准测试工作负载资源以执行测试,则需要它。有关安装 Git 的帮助,请参阅官方 Git 文档

    git --version
    

完成安装

安装完所需软件后,您可以使用以下命令安装 OpenSearch Benchmark

pip install opensearch-benchmark

安装完成后,您可以使用以下命令显示帮助信息

opensearch-benchmark -h

OpenSearch Benchmark 安装到您的主机后,您可以了解配置 OpenSearch Benchmark

使用 Docker 安装

您可以在 Docker HubAmazon ECR Public Gallery 上找到 OpenSearch Benchmark 的官方 Docker 镜像。

Docker 限制

当您在 Docker 容器中运行 OpenSearch Benchmark 时,某些 OpenSearch Benchmark 功能将不可用。具体来说,适用以下限制:

  • OpenSearch Benchmark 无法从多个主机(例如负载工作协调器主机)分发负载。
  • OpenSearch Benchmark 无法配置 OpenSearch 节点,并且只能在已存在的集群上运行测试。您只能使用 benchmark-only 管道调用 OpenSearch Benchmark 命令。

拉取 Docker 镜像

要从 Docker Hub 拉取镜像,请运行以下命令

docker pull opensearchproject/opensearch-benchmark:latest

要从 Amazon Elastic Container Registry (Amazon ECR) 拉取镜像

docker pull public.ecr.aws/opensearchproject/opensearch-benchmark:latest

使用 Docker 运行 OpenSearch Benchmark

要运行 OpenSearch Benchmark,请使用 docker run 启动容器。启动容器时,OpenSearch Benchmark 子命令将作为参数传递。然后 OpenSearch Benchmark 处理该命令并在请求操作完成后停止容器。

例如,以下命令将 OpenSearch Benchmark 的帮助文本打印到命令行,然后停止容器

docker run opensearchproject/opensearch-benchmark -h

在 Docker 容器中建立卷持久性

为确保您的基准测试数据和日志在 Docker 容器停止后仍然持久化,在使用 OpenSearch Benchmark 时请指定一个 Docker 卷挂载到镜像。

使用 -v 选项指定要挂载的本地目录以及容器中卷附加到的目录。

以下示例命令在用户的主目录中创建一个卷,将该卷挂载到 OpenSearch Benchmark 容器的 /opensearch-benchmark/.benchmark 位置,然后使用 geonames 工作负载运行测试基准。同时还指定了一些客户端选项

docker run -v $HOME/benchmarks:/opensearch-benchmark/.benchmark opensearchproject/opensearch-benchmark execute-test --target-hosts https://198.51.100.25:9200 --pipeline benchmark-only --workload geonames --client-options basic_auth_user:admin,basic_auth_password:admin,verify_certs:false --test-mode

请参阅配置 OpenSearch Benchmark,了解更多关于位于 /opensearch-benchmark/.benchmark 中的文件和子目录的信息。

使用测试配置 OpenSearch 集群

OpenSearch Benchmark 兼容 JDK 17、16、15、14、13、12、11 和 8 版本。

如果您使用 PyPi 安装了 OpenSearch,您也可以通过在 execute-test 命令中指定 distribution-version 来配置新的 OpenSearch 集群。

如果您计划让 Benchmark 配置一个集群,您需要告知 Benchmark 该集群的 JAVA_HOME 路径的位置。要设置 JAVA_HOME 路径并配置集群,请执行以下操作:

  1. 找到您当前使用的 JAVA_HOME 路径。打开终端并输入 /usr/libexec/java_home

  2. 通过输入上一步中的路径来设置您对应的 JDK 版本环境变量。输入 export JAVA17_HOME=<Java Path>

  3. 运行 execute-test 命令并指明您想使用的 OpenSearch 分发版本

  opensearch-benchmark execute-test --distribution-version=2.3.0 --workload=geonames --test-mode 

目录结构

首次运行 OpenSearch Benchmark 后,您可以在 ~/.benchmark 目录中查找所有相关文件,包括配置文件。该目录包含以下文件树:

# ~/.benchmark Tree
.
├── benchmark.ini
├── benchmarks
│   ├── data
│   │   └── geonames
│   ├── distributions
│   │   ├── opensearch-1.0.0-linux-x64.tar.gz
│   │   └── opensearch-2.3.0-linux-x64.tar.gz
│   ├── test_executions
│   │   ├── 0279b13b-1e54-49c7-b1a7-cde0b303a797
│   │   └── 0279c542-a856-4e88-9cc8-04306378cd38
│   └── workloads
│       └── default
│           └── geonames
├── logging.json
├── logs
│   └── benchmark.log
  • benchmark.ini:包含任何可调整的测试配置。有关如何配置 OpenSearch Benchmark 的信息,请参阅配置 OpenSearch Benchmark
  • data:包含与 OpenSearch Benchmark 的官方工作负载相关的所有数据语料库和文档。
  • distributions:包含所有从 OpenSearch.org 下载并用于配置集群的 OpenSearch 分发包。
  • test_executions:包含所有 OpenSearch Benchmark 之前运行的测试 execution_id
  • workloads:包含除数据语料库外所有与工作负载相关的文件。
  • logging.json:包含 OpenSearch Benchmark 中日志记录方式相关的所有配置选项。
  • logs:包含 OpenSearch Benchmark 运行的所有日志。这在运行过程中遇到错误时会很有帮助。

后续步骤