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

news2025/3/15 4:16:05

目录

引言

1 在centos上安装Elasticsearch

1.1在服务器上安装 Docker

1.2 查找Elasticsearch镜像

1.3 安装并运行 Elasticsearch 容器

2 性能测试 Elasticsearch

2.1 安装 Apache Benchmark 工具

2.2 使用Benchmark进行性能测试

3 性能分析

3.1 性能测试结果

3.2 性能分析说明

结论


引言

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

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

1 centos上安装Elasticsearch

1.1在服务器上安装 Docker

安装 Docker 和启用服务

sudo yum install -y docker

sudo systemctl start docker

sudo systemctl enable docker

1.2 查找Elasticsearch镜像

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

docker search elasticsearch

1.3 安装并运行 Elasticsearch 容器

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

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 容器启动,可以使用以下命令检查容器的状态:

docker ps

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

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

2 性能测试 Elasticsearch

2.1 安装 Apache Benchmark 工具

sudo yum install httpd-tools

2.2 使用Benchmark进行性能测试

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

​​​​​​​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 在构建和部署容器化应用时的灵活性和便捷性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1103798.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

堆/二叉堆详解[C/C++]

前言 堆是计算机科学中-类特殊的数据结构的统称。实现有很多,例如:大顶堆,小顶堆,斐波那契堆,左偏堆,斜堆等等。从子结点个数上可以分为二汊堆,N叉堆等等。本文将介绍的是二叉堆。 二叉堆的概念 1、引例 我们小时候,基…

网络安全常见问题隐患及其应对措施

随着数字化时代的到来,网络安全已经成为组织和个人面临的严重挑战之一。网络攻击日益普及,黑客和不法分子不断寻找机会侵入系统、窃取敏感信息、破坏服务和网络基础设施。在这种情况下,了解网络安全的常见问题隐患以及如何应对它们至关重要。…

Android 13 - Media框架(11)- MediaCodec(一)

MediaCodec 是 Android 平台上音视频编解码的标准接口,无论是使用软解还是硬解都要通过调用 MediaCodec来完成,是学习 Android 音视频不可跳过的重要部分。MediaCodec 部分的代码有几千行,光是头文件就有几百行,对于我这样的新手来…

OpenCV Series : TI - DSP - CCS

Code Composer Studio V5.5 https://www.ti.com/tool/download/CCSTUDIO https://www.ti.com/tool/download/CCSTUDIO/5.5.0.00077

vue中引入jquery解决跨域问题

1、vue 工程文件 package.json 中 引入 “dependencies”: { “jquery”:“^2.2.4” }, 2、控制台执行命令,当前工程文件夹下 cnpm install 3、修改的vue文件中 加入 import $ from ‘jquery’ 4、调用 ajax请求 $.ajax({url:http://192.168.0.10:9099/strutsJspA…

黑马JVM总结(三十六)

(1)CAS-概述 cas是配合volatile使用的技术 ,对共享变量的安全性要使用synachonized加锁,但是CAS不加锁,它是使用where(true)的死循环,里面compareAndSwap尝试把结果赋值给共享变量&…

Leetcode 02.07 链表相交(链表)

Leetcode 02.07 链表相交(链表) 解法1 尾部对齐解法2:太厉害了,数学归纳推导的方法 很巧妙,这就是将链表的尾端对齐后再一起遍历,这样能满足题目的要求。因为相交之后两个链表到结束的所有节点都一样了&…

nginx正向代理、反向代理、负载均衡(重中之重)

nginx中有两种代理方式: 七层代理(http协议) 四层代理(基于tcp或udp的流量转发) 一、七层代理 原理:客户端请求代理服务器,由代理服务器转发客户端的http请求,转发到内部的服务器…

手写一个PrattParser基本运算解析器2: PrattParser概述

点击查看 基于Swift的PrattParser项目 解析器概述 由于编译原理内容太过于枯燥, 所以当时我就在想能不能写一个编译过程, 这时候就在B站上看到了熊爷的技术去魅篇 - PrattParser解析器. 解析器主要的工作是把一系列的标记转换为树的表示形式. 例如线性代码 a 1 1 * 3 的转换…

React 路由学习总结 react-router-dom6+react-router-dom5

开题 单页面应用和多页面应用 SPA:单页面应用程序,整个应用中只有一个页面(index.html) MPA:多页面应用程序,整个应用中有很多页面(*.html) react路由 现在的前端应用大多都是SPA单页面应用程序,也就是一个HTML页面的…

Compose Material3 新增垂直分隔符(VerticalDivider)解析与疑惑

前言 谷歌在 7 月 28 日发布了 Compose Material3 1.2.0-alpha04 版本,在该版本新增(修改)了两个组件,垂直分隔符和分段按钮: Experimental Segmented Button API. Dividers now have a parameter to control orienta…

TwinCAT3 ADS与C++通讯

文章目录 一 ADS简介1.1 ADS通讯定义1.2 ADS通讯实现 二 上位机程序编写(Visual Studio 2019)2.1 启动VS2019,新建MFC项目2.2 添加ADS通讯链接库2.3 在程序中引入头文件 一 ADS简介 1.1 ADS通讯定义 ADS(Advanced Design System&#xff09…

从0开始编写BP,自适应学习率的BP神经网络,不使用MATLAB工具箱,纯手写matlab代码,以BP分类为例...

与上篇文章不同,仔细读了上篇文章的小伙伴应该知道,BP神经网络是有一个学习率的,而这个学习率很大程度上决定着神经网络的效果。这里采用自适应学习率,实现纯手写BP神经网络。 编程时,激活函数选择Sigmoid函数&#xf…

【计算机毕设选题推荐】网络在线考试系统SpringBoot+SSM+Vue

前言:我是IT源码社,从事计算机开发行业数年,专注Java领域,专业提供程序设计开发、源码分享、技术指导讲解、定制和毕业设计服务 项目名 网络在线考试系统 技术栈 SpringBootSSMVueMySQLMaven 文章目录 一、网络在线考试系统-环境…

SLAM从入门到精通(dwa算法)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 要说搜路算法,这个大家都比较好理解。毕竟从一个地点走到另外一个地点,这个都是直觉上可以感受到的事情。但是这条道路上机…

行情分析——加密货币市场大盘走势(10.17)

大饼昨日在受到假消息美国证券交易委员会(SEC)通过大饼ETF后迅速上涨,一度上涨到30000,而很快回落到28000附近。从MACD日线来看,现在完全进入多头趋势,同时大饼再次进入蓝色上涨趋势线,目前按照…

李宏毅机器学习笔记-半监督学习

半监督学习,一般应用于少量带标签的数据(数量R)和大量未带标签数据的场景(数量U),一般来说,U>>R。 半监督学习一般可以分为2种情况,一种是transductive learning,…

使用秋云 ucharts echarts 高性能跨全端图表组件 流程

1. 2. // 引入 import qiunDataCharts from ../../uni_modules/qiun-data-charts/components/qiun-data-charts/qiun-data-charts.vue // 注册 components:{qiunDataCharts },// 页面中使用 <qiun-data-charts type"line" :opts"opts" :chartData"…

04 MIT线性代数-矩阵的LU分解 Factorization into A=LU

目的: 从矩阵的角度理解高斯消元法, 完成LU分解得到ALU 1.矩阵乘积的逆矩阵 Inverse of a product 2.矩阵乘积的转置 Transpose of a product 3.转置矩阵的逆矩阵 Inverse of a transpose 4.矩阵的LU分解 U为上三角阵(Upper triangular matrix), L为下三角阵(Lower triangular…

pycharm远程连接miniconda完整过程,以及遇到的问题解决

问题1&#xff1a;no-zero exit code(126) env: ‘/home/user2/miniconda3/envs/ihan/bin/python3’: Too many levels of symbolic links Python interpreter process exited with a non-zero exit code 126 因为选择的新建导致太多软连接&#xff0c;先在服务器上建好虚拟环…