华为云云耀云服务器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 在构建和部署容器化应用时的灵活性和便捷性。

相关推荐
喝醉酒的小白4 分钟前
Elasticsearch相关知识@1
大数据·elasticsearch·搜索引擎
蜜獾云1 小时前
docker 安装雷池WAF防火墙 守护Web服务器
linux·运维·服务器·网络·网络安全·docker·容器
小小工匠2 小时前
ElasticSearch - 深入解析 Elasticsearch Composite Aggregation 的分页与去重机制
elasticsearch·composite·after_key·桶聚合分页
风_流沙2 小时前
java 对ElasticSearch数据库操作封装工具类(对你是否适用嘞)
java·数据库·elasticsearch
年薪丰厚2 小时前
如何在K8S集群中查看和操作Pod内的文件?
docker·云原生·容器·kubernetes·k8s·container
TGB-Earnest4 小时前
【py脚本+logstash+es实现自动化检测工具】
大数据·elasticsearch·自动化
摸鱼也很难8 小时前
Docker 镜像加速和配置的分享 && 云服务器搭建beef-xss
运维·docker·容器
鸠摩智首席音效师10 小时前
Docker 中如何限制CPU和内存的使用 ?
docker·容器
Michaelwubo11 小时前
Docker dockerfile镜像编码 centos7
运维·docker·容器
jingyu飞鸟11 小时前
centos-stream9系统安装docker
linux·docker·centos