华为云云耀云服务器L实例评测|使用Benchmark工具对云耀云服务器Elasticsearch的性能测试

目录

引言

[1 在centos上安装Elasticsearch](#1 在centos上安装Elasticsearch)

[1.1在服务器上安装 Docker](#1.1在服务器上安装 Docker)

[1.2 查找Elasticsearch镜像](#1.2 查找Elasticsearch镜像)

[1.3 安装并运行 Elasticsearch 容器](#1.3 安装并运行 Elasticsearch 容器)

[2 性能测试 Elasticsearch](#2 性能测试 Elasticsearch)

[2.1 安装 Apache Benchmark 工具](#2.1 安装 Apache Benchmark 工具)

[2.2 使用Benchmark进行性能测试](#2.2 使用Benchmark进行性能测试)

[3 性能分析](#3 性能分析)

[3.1 性能测试结果](#3.1 性能测试结果)

[3.2 性能分析说明](#3.2 性能分析说明)

结论


引言

华为云服务器提供高性价比的云计算资源,让您能够以低成本快速搭建和扩展您的应用。不仅我们拥有多种实例规格,能够满足性能和成本之间的灵活平衡,一款相对通用的具备出色性价比的服务器,拥有2核CPU、2GB内存和3MB缓存,适用于各种应用场景。

在这篇文章中,我们将使用这款性能卓越的华为云云耀云服务器L实例,搭载 CentOS 操作系统,来演示如何使用 Benchmark 工具对云上的 Elasticsearch 进行性能测试。这能够帮助您评估云服务器在处理搜索引擎工作负载时的性能表现,以确保您的应用在高效和成本可控的环境下运行。

1 centos 上安装 Elasticsearch

1.1在服务器上安装 Docker

安装 Docker 和启用服务

bash 复制代码
sudo yum install -y docker

sudo systemctl start docker

sudo systemctl enable docker

1.2 查找Elasticsearch镜像

查找elasticsearch镜像文件,使用如下命令

bash 复制代码
docker search elasticsearch

1.3 安装并运行 Elasticsearch 容器

使用 Docker 安装 Elasticsearch 容器。运行以下命令:

bash 复制代码
docker run -d --name elasticsearch710 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" --ulimit memlock=-1:-1 -m 1g docker.elastic.co/elasticsearch/elasticsearch:7.10.0

这个命令用于以 Docker 容器方式运行 Elasticsearch 版本 7.10.0,并配置了各种参数和选项。以下是对该命令的详细解释:

docker run: 这是 Docker 命令,用于启动一个新容器。

-d: 这是一个选项,表示容器将在后台运行,即以"守护进程"模式启动。

--name elasticsearch710: 使用 --name 选项来为容器指定一个名称,这里设置为 "elasticsearch710"。

-p 9200:9200 -p 9300:9300: 使用 -p 选项将容器内部的端口映射到主机上的端口。在这里,9200 和 9300 端口都被映射了,9200 用于 Elasticsearch HTTP 服务,9300 用于 Elasticsearch 内部通信。

-e "discovery.type=single-node": 使用 -e 选项可以设置容器的环境变量。这里设置 discovery.type 为 "single-node",告诉 Elasticsearch 在容器内以单节点模式启动。

-e "ES_JAVA_OPTS=-Xms512m -Xmx512m": 同样使用 -e 选项设置 ES_JAVA_OPTS 环境变量,用于配置 Elasticsearch 的 Java 虚拟机选项。在这里,将堆内存的最小值 (-Xms) 和最大值 (-Xmx) 都设置为 512MB。

--ulimit memlock=-1:-1: 这个选项用于设置容器的 memlock 参数,允许 Elasticsearch 进程锁定内存。 -1 表示没有限制。

-m 1g: 使用 -m 选项设置容器的内存限制为 1GB。

docker.elastic.co/elasticsearch/elasticsearch:7.10.0: 这是要运行的 Docker 镜像的名称。它指定了 Elasticsearch 7.10.0 版本的官方 Docker 镜像,Docker 将会下载并在容器中运行这个镜像。

综合起来,这个命令的作用是以后台模式运行一个名为 "elasticsearch710" 的容器,将容器的 9200 和 9300 端口映射到主机上,配置 Elasticsearch 以单节点模式运行,并设置 Java 虚拟机的堆内存为 512MB,容器内存限制为1GB。此配置适用于单机测试或开发环境。

等待 Elasticsearch 容器启动,可以使用以下命令检查容器的状态:

bash 复制代码
docker ps

当状态显示为 "Up" 时,Elasticsearch 容器已经成功运行。

在华为云服务器的安全组设置中,对入站规则进行配置,放开9200端口的访问。

2 性能测试 Elasticsearch

2.1 安装 Apache Benchmark 工具

bash 复制代码
sudo yum install httpd-tools

2.2 使用Benchmark进行性能测试

使用 Apache Benchmark 工具进行性能测试。以下是一个示例命令,它将发送 1000 个请求并显示性能数据:

bash 复制代码
​​​​​​​ab -n 1000 -c 10 http://localhost:9200/

这个命令将执行 1000 个请求,每次并发 10 个请求。你可以根据你的需求调整 -n 和 -c 参数。

测试结果如下图

3 性能分析

3.1 性能测试结果

这个输出是 Apache Benchmark (ab) 工具的性能测试结果,对本地运行的 Elasticsearch 服务进行的性能测试。以下是对这些数据的翻译和性能分析说明:

Server Software: 显示服务器使用的软件。在这里,服务器使用的是未提及的服务器软件。

Server Hostname: 服务器的主机名。在这里,服务器运行在本地主机,所以主机名是 "localhost"。

Server Port: 服务器的端口号。这里,Elasticsearch 服务运行在 9200 端口上。

Document Path: 请求的文档路径。这里,"/" 表示根目录。

Document Length: 服务器响应的文档长度,本次请求中,响应的文档长度为 542 字节。

Concurrency Level: 同时发送请求的并发数量,本次测试使用了 10 个并发请求。

Time taken for tests: 总共执行测试的时间,本次测试耗时约 1.018 秒。

Complete requests: 完成的请求总数,本次测试执行了 1000 个请求。

Failed requests: 失败的请求总数,本次测试中没有失败的请求。

Write errors: 写入错误的总数,本次测试中没有写入错误。

Total transferred: 总共传输的字节数,本次测试传输了 629,000 字节。

HTML transferred: 传输的 HTML 文档字节数,本次测试传输了 542,000 字节的 HTML 文档。

Requests per second: 平均每秒处理的请求数量,本次测试平均每秒处理了约 982.60 个请求。这是一个重要的性能指标,表示服务器的处理能力。

Time per request: 平均每个请求的响应时间,分为两种情况:10.177 毫秒 (平均响应时间) 和 1.018 毫秒 (平均响应时间,考虑了所有并发请求)。

Transfer rate: 传输速率,以千字节每秒 (KB/s) 为单位。本次测试的传输速率为 603.57 KB/s。

Connection Times (ms): 连接时间统计,包括最小值 (min)、平均值 (mean)、标准差 (+/-sd)、中位数 (median) 和最大值 (max)。

Percentage of the requests served within a certain time (ms): 显示请求在特定响应时间内完成的百分比,例如,50% 的请求在 9 毫秒内完成。

3.2 性能分析说明

本次测试显示了 Elasticsearch 服务的性能。每秒处理约 983 个请求,响应时间平均约 10 毫秒,表明 Elasticsearch 在此测试条件下表现良好。

0% 的请求失败,没有写入错误,说明服务器在这个测试中稳定。

平均响应时间很低,说明 Elasticsearch 能够快速响应查询请求,适用于高吞吐量的应用。

百分位数数据展示了请求在不同响应时间范围内的分布情况。例如,50% 的请求在 9 毫秒内完成,而 95% 的请求在 17 毫秒内完成,这显示了请求的分布情况。

总的来说,这个测试表明 Elasticsearch 在这个配置下能够以高性能运行,适用于需要处理大量查询请求的应用场景。但请注意,性能测试结果可能会因环境和负载不同而有所变化,因此建议进行多轮测试以获取更准确的性能数据。

结论

通过遵循上述步骤,您可以在云服务器上轻松地使用 Docker 安装 Elasticsearch,然后使用 Apache Benchmark 工具进行性能测试。这为您提供了一种快速而可控的方法,以确保您的 Elasticsearch 实例在生产环境中能够满足性能要求。

  1. 安装 Docker:在云服务器上安装 Docker,这将使您能够轻松部署和管理容器化的应用程序。
  2. 运行 Elasticsearch 容器:使用 Docker 命令,您可以快速启动 Elasticsearch 容器,选择合适的配置和版本。
  3. 进行性能测试:使用 Apache Benchmark 工具 (ab) 或其他性能测试工具,可以对您的 Elasticsearch 实例执行性能测试。这有助于评估响应时间、吞吐量和稳定性等性能指标。
  4. 性能分析:分析测试结果,了解服务器的处理能力、响应时间和资源利用率。这有助于确定是否需要优化配置或扩展硬件资源。

这个流程使您能够在云服务器上快速评估 Elasticsearch 的性能,以确保它能够满足您的应用程序的需求。同时,这也展示了 Docker 在构建和部署容器化应用时的灵活性和便捷性。

相关推荐
意疏1 小时前
【Linux 篇】Docker 的容器之海与镜像之岛:于 Linux 系统内探索容器化的奇妙航行
linux·docker
墨鸦_Cormorant1 小时前
使用docker快速部署Nginx、Redis、MySQL、Tomcat以及制作镜像
redis·nginx·docker
wanmei0023 小时前
Dockerfile复制目录进入镜像里
docker
inter_peng3 小时前
[Docker-显示所有容器IP] 显示docker-compose.yml中所有容器IP的方法
tcp/ip·docker·eureka
Linux运维日记3 小时前
k8s1.31版本最新版本集群使用容器镜像仓库Harbor
linux·docker·云原生·容器·kubernetes
梦幻通灵4 小时前
ES分词环境实战
大数据·elasticsearch·搜索引擎
Elastic 中国社区官方博客4 小时前
Elasticsearch 中的热点以及如何使用 AutoOps 解决它们
大数据·运维·elasticsearch·搜索引擎·全文检索
一名路过的小码农5 小时前
ceph 18.2.4二次开发,docker镜像制作
ceph·docker·容器
xiangshangdemayi7 小时前
Windows环境GeoServer打包Docker极速入门
windows·docker·容器·geoserver·打包·数据挂载
程序员JerrySUN8 小时前
熟悉的 Docker,陌生的 Podman
linux·docker·容器·系统架构·podman