自己做的网站怎么上传到域名,网站seo优化方案策划书,教育网站开发需求说明书,wordpress五分钟建站目录
前言
1. 华为云X实例介绍及优势
1.1 柔性算力
1.2 vCPU和内存的灵活配比
1.3 成本效益与性能
2. 安装并运行 Docker
2.1 修改仓库配置文件
2.2 安装 Docker
2.3 启动 Docker
3. 使用Docker部署Elasticsearch
3.1 拉取Elasticsearch镜像
3.2 启动Elasticsearch…目录
前言
1. 华为云X实例介绍及优势
1.1 柔性算力
1.2 vCPU和内存的灵活配比
1.3 成本效益与性能
2. 安装并运行 Docker
2.1 修改仓库配置文件
2.2 安装 Docker
2.3 启动 Docker
3. 使用Docker部署Elasticsearch
3.1 拉取Elasticsearch镜像
3.2 启动Elasticsearch容器
3.3 验证Elasticsearch
4. 安装Apache Benchmark (ab) 工具
5. 使用 ab 工具对 Elasticsearch 进行评测
5.1 运行 Elasticsearch 查询评测
5.2 查看评测结果
5.3 调整并发请求和请求数
6. 总结 前言
随着数据量的不断增加企业对高效搜索和数据分析的需求也在快速增长。Elasticsearch作为一款分布式的全文搜索引擎因其高性能和可扩展性广泛应用于大数据场景。在本篇文章中我将介绍如何在华为云上通过Docker容器化部署Elasticsearch并通过工具对其进行性能评测。整篇文章将涵盖从环境准备、部署、到性能评测的详细步骤和代码示例帮助读者在华为云上快速搭建一个高效的Elasticsearch系统。
1. 华为云X实例介绍及优势
在选择云服务平台时计算资源的弹性和性价比是关键考虑因素。华为云X实例是为用户提供高性价比和灵活资源调配能力的云计算服务特别适合计算密集型任务如大数据处理、AI训练以及像Elasticsearch这样的分布式搜索引擎。
1.1 柔性算力
华为云X实例采用了柔性算力的设计理念。所谓柔性算力即用户可以根据具体的业务需求在计算能力、存储容量和带宽等资源之间进行灵活调配。这意味着用户在运行Elasticsearch等应用时可以根据数据增长或查询量的变化动态调整资源确保性能需求得到满足。
1.2 vCPU和内存的灵活配比
X实例允许用户灵活配置vCPU与内存的比例从而根据不同负载场景进行优化。例如在Elasticsearch集群中索引和搜索任务的负载不同可能需要更高的内存或计算能力。通过在X实例中调整vCPU与内存的配比用户可以避免资源浪费提高成本效益。
1.3 成本效益与性能
在高性价比方面华为云X实例提供了更具竞争力的价格特别是对于那些对资源需求波动较大的工作负载如Elasticsearch的动态索引和查询工作。结合弹性扩展能力用户可以在不牺牲性能的前提下大幅降低运行成本。此外X实例支持不同的计费模式用户可以按需付费或选择包年包月等多种付费方式从而进一步提升云上计算资源的利用效率。
近期华为云推出了优惠活动X实例服务器的折扣力度非常大性能与性价比兼具特别适合开发者进行各种项目部署和测试欢迎大家抓住机会体验。 2. 安装并运行 Docker
在开始部署之前确保您已经在华为云上创建了一个X实例服务器并安装了Docker。以下是需要准备的内容 配置项 详细信息 操作系统 Huawei Cloud EulerOS 2.0 实例配置 4核CPU12GB内存100GB SSD Elasticsearch版本 7.16.2 Docker版本 20.10及以上 2.1 修改仓库配置文件
如果在添加 Docker 仓库时出现错误需手动下载并修改仓库文件。执行以下命令下载仓库文件
wget https://repo.huaweicloud.com/docker-ce/linux/centos/docker-ce.repo -P /usr/local/docker
打开文件并将 $releasever 替换为 7
vi /usr/local/docker/docker-ce.repo
:%s/\$releasever/7/g
重新添加仓库
yum-config-manager --add-repo /usr/local/docker/docker-ce.repo
2.2 安装 Docker
安装 Docker 及相关组件
yum install -y docker-ce docker-ce-cli containerd.io
2.3 启动 Docker
安装完成后启动 Docker 服务
systemctl start docker
使用以下命令确认 Docker 正常运行
systemctl status docker 3. 使用Docker部署Elasticsearch
部署Elasticsearch的方式有很多种使用Docker可以方便地管理其容器化进程并快速扩展。接下来我们将拉取Elasticsearch镜像并通过Docker启动容器。
3.1 拉取Elasticsearch镜像
执行以下命令从Docker Hub上获取Elasticsearch官方镜像
docker pull elasticsearch:7.16.2
3.2 启动Elasticsearch容器
在启动容器之前我们可以通过指定一些环境变量来配置Elasticsearch。以下是一个启动Elasticsearch的命令示例
docker run -d --name elasticsearch \-p 9200:9200 -p 9300:9300 \-e discovery.typesingle-node \-e ES_JAVA_OPTS-Xms4g -Xmx4g \-v es_data:/usr/share/elasticsearch/data \
elasticsearch:7.16.2
上述命令解释
-p 9200:9200将主机的9200端口映射到容器的9200端口用于HTTP访问。-p 9300:9300将主机的9300端口映射到容器的9300端口用于集群通信。-e discovery.typesingle-node指定Elasticsearch为单节点模式。-e ES_JAVA_OPTS-Xms4g -Xmx4g设置JVM内存分配为4GB。-v es_data:/usr/share/elasticsearch/data将Elasticsearch的数据存储映射到Docker卷es_data中。
启动后您可以通过以下命令查看容器状态
docker ps
如果Elasticsearch启动成功您应该能够看到容器在运行。 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2f11d1ece355 elasticsearch:7.16.2 /bin/tini -- /usr/l… 3 days ago Up 3 days 0.0.0.0:9200-9200/tcp, :::9200-9200/tcp, 0.0.0.0:9300-9300/tcp, :::9300-9300/tcp elasticsearch 3.3 验证Elasticsearch
您可以通过浏览器或curl命令访问Elasticsearch的REST API接口验证其是否正常启动
curl -X GET localhost:9200/
如果部署成功您将得到类似以下的JSON响应 { name : 2f11d1ece355, cluster_name : docker-cluster, cluster_uuid : ztjMH9OAQaKDErlBVHpgpg, version : { number : 7.16.2, build_flavor : default, build_type : docker, build_hash : 2b937c44140b6559905130a8650c64dbd0879cfb, build_date : 2021-12-18T19:42:46.604893745Z, build_snapshot : false, lucene_version : 8.10.1, minimum_wire_compatibility_version : 6.8.0, minimum_index_compatibility_version : 6.0.0-beta1 }, tagline : You Know, for Search } 4. 安装Apache Benchmark (ab) 工具
Apache Benchmark简称ab是Apache HTTP Server附带的一个命令行工具常用于对HTTP服务的性能进行测试。由于Elasticsearch的REST API是基于HTTP协议的因此可以使用ab工具对其进行简单的压力测试。
大多数Linux系统自带ab工具如果没有安装Apache可以通过以下命令安装
sudo yum install httpd-tools
安装完成后可以通过以下命令验证ab是否安装成功
ab -V
如果返回版本号则表示安装成功。 5. 使用 ab 工具对 Elasticsearch 进行评测
ab (Apache Benchmark) 工具通过向指定 URL 发送多个 HTTP 请求统计响应时间、吞吐量等性能指标帮助评估服务器的性能。对于 Elasticsearch 集群可以使用 ab 工具测试查询请求的性能如数据检索的响应时间和吞吐量等。
5.1 运行 Elasticsearch 查询评测
以下是使用 ab 工具对 Elasticsearch 进行查询性能评测的步骤
确定查询 URL 先确定需要测试的 Elasticsearch 查询请求。假设 Elasticsearch 运行在 localhost:9200并且索引为 blog01可以使用以下命令执行简单的搜索请求
curl -XGET http://localhost:9200/blog01/article/1?pretty
这将返回 id 字段为 1 的文章数据。 运行 ab 测试 使用 ab 工具对上述 URL 进行压力测试模拟多个并发查询请求。例如以下命令发出 1000 个请求允许最多 10 个并发请求
ab -n 1000 -c 10 http://localhost:9200/blog01/article/_search?qid:1
参数说明
-n 1000总共发出 1000 个 HTTP 请求。-c 10最多允许 10 个并发请求。
5.2 查看评测结果
ab 工具的评测结果包括以下关键指标
Requests per second每秒处理的请求数即吞吐量。Time per request每个请求的平均处理时间延迟。Transfer rate数据传输速度。
示例输出如下
Concurrency Level: 10
Time taken for tests: 0.720 seconds
Complete requests: 1000
Failed requests: 1(Connect: 0, Receive: 0, Length: 1, Exceptions: 0)
Total transferred: 863001 bytes
HTML transferred: 280001 bytes
Requests per second: 1389.56 [#/sec] (mean)
Time per request: 7.197 [ms] (mean)
Time per request: 0.720 [ms] (mean, across all concurrent requests)
Transfer rate: 1171.09 [Kbytes/sec] received
Connection Times (ms)min mean[/-sd] median max
Connect: 0 0 0.0 0 0
Processing: 1 7 2.8 7 24
Waiting: 1 7 2.7 7 24
Total: 1 7 2.8 7 24
分析
Requests per second (1389.56) 表示 Elasticsearch 服务器每秒处理约 1390 个请求说明在 10 个并发请求下系统的吞吐量较高。Time per request (7.197 ms) 表示平均每个请求处理时间约为 7 毫秒说明延迟较低系统能快速响应。Failed requests (1) 表示在 1000 次请求中只有 1 次失败服务器在高并发下的稳定性较好。
5.3 调整并发请求和请求数
可以通过调整 -n 和 -c 参数测试不同规模的压力场景。比如以下命令模拟 100 个并发请求共发出 5000 个请求
ab -n 5000 -c 100 http://localhost:9200/blog01/article/_search?qid:1
输出示例如下
Concurrency Level: 100
Time taken for tests: 1.628 seconds
Complete requests: 5000
Failed requests: 5(Connect: 0, Receive: 0, Length: 5, Exceptions: 0)
Total transferred: 4315005 bytes
HTML transferred: 1400005 bytes
Requests per second: 3070.79 [#/sec] (mean)
Time per request: 32.565 [ms] (mean)
Time per request: 0.326 [ms] (mean, across all concurrent requests)
Transfer rate: 2587.99 [Kbytes/sec] received
Connection Times (ms)min mean[/-sd] median max
Connect: 0 0 0.2 0 2
Processing: 1 32 18.3 30 100
Waiting: 1 32 18.3 30 100
Total: 1 32 18.3 30 100
分析
在 100 并发请求下Requests per second 达到 3070.79说明系统在高并发场景下吞吐量显著提高。Time per request 增至 32 毫秒说明在更高并发情况下系统的响应时间有所增加但仍在可接受范围内。
通过这种压力测试可以了解 Elasticsearch 在不同并发请求下的性能表现并为实际应用中的优化提供依据。
6. 总结
通过Apache Benchmark工具您可以快速对Elasticsearch集群的查询性能进行压力测试。该工具简单易用能够提供基本的吞吐量、延迟和失败请求等指标。它适用于对HTTP层的简单压力测试帮助用户初步了解集群的性能状况。