阿里云、百度云及移动云对象存储横向性能对比测试

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
对象存储 OSS,内容安全 1000次 1年
简介: 在企业的数字化转型进程中,我们观察到越来越多的公司将其IT基础设施迁移到云端。随着企业业务的持续运营,无论是储存、处理、分享还是删除,都会产生大量的数据,这就要求有一个既可靠又高效的系统来管理和存储这些信息。对象存储产品在这个场景中扮演了至关重要的角色。它们以一种可扩展、安全、持久的方式,有效地满足了对大规模非结构化数据存储的需求。尽管市场上云计算提供商众多,各自都有自己独特的对象存储产品,面对这样的丰富选择,如何寻找最符合企业需求的产品呢?这正是企业今天寻求解答的问题。在本篇文章中,我们将深入进行一项横向对比测试,专门对阿里云OSS、百度云BOS和移动云EOS这三大云服务提供商的对象

一、前言

在企业的数字化转型进程中,我们观察到越来越多的公司将其IT基础设施迁移到云端。随着企业业务的持续运营,无论是储存、处理、分享还是删除,都会产生大量的数据,这就要求有一个既可靠又高效的系统来管理和存储这些信息。对象存储产品在这个场景中扮演了至关重要的角色。它们以一种可扩展、安全、持久的方式,有效地满足了对大规模非结构化数据存储的需求。

尽管市场上云计算提供商众多,各自都有自己独特的对象存储产品,面对这样的丰富选择,如何寻找最符合企业需求的产品呢?这正是企业今天寻求解答的问题。

在本篇文章中,我们将深入进行一项横向对比测试,专门对阿里云OSS、百度云BOS和移动云EOS这三大云服务提供商的对象存储产品进行性能测试。我们期望,通过这次详细的对比分析,能帮助企业清晰地理解各产品性能特点,进而选择出最适合自身需求的产品。

二、对比测试的方法和标准

A. 测试环境的设置

为了确保我们的测试达到最严谨的标准,我们选择了基于第二代英特尔®至强®可扩展处理器的同一代处理云服务器型号,并统一配置为16vCPU和32G内存。所有服务器的操作系统都选择了CentOS 7.9。

由于不同的云厂商底层云平台架构存在差异,使得内网带宽上限可能会有所不同。在云服务器存储盘的选择上,我们尽可能地选择了具有相似IOPS(输入/输出操作每秒)的存储盘,以保证测试的公平性和一致性。

在运行测试 Workload 时,云服务器和对象存储的通信均采用内网 Endpoint 进行通信,避免公网测试会对结果产生影响。

具体的对比图表如下:

云厂商 云服务器型号 核心数/内存 CPU型号 内网带宽上限 操作系统 存储容量 存储IOPS
阿里云 ecs.c6.4xlarge 16C/32G Xeon 8269CY 10 Gbps CentOS 7.9 200GiB ESSD PL1 11800
百度云 bcc.c4.c16m32 16C/32G Xeon 6271C 6 Gbps CentOS 7.9 200GiB ESSD PL1 11800
移动云 s4ni.4xlarge.2 16C/32G Xeon 6248R 6 Gbps CentOS 7.9 327GiB 高性能 11810

B. 性能测试工具

为了确保测试的一致性和可靠性,本次测评选用了由Intel开发的COSBench工具,对阿里云OSS、百度云BOS和移动云EOS这三种不同的对象存储产品进行性能测试,测试时统一采用了这三大对象存储提供商的S3兼容协议作为测试协议。

测试环境配置如下:

操作系统:CentOS 7.9

Java版本:1.8.0.372.b07-1.el7_9

软件版本:COSBench 0.4.2.c4

通过这样的配置,我们能确保测试的公正性,同时也使得测试结果具有更好的参考价值。

C. 性能测试标准

在本次的对象存储测评中,我们将以下这些参数作为性能测试的关键指标,通过这些指标,我们可以全面地评估各个对象存储产品的性能表现。

  1. Avg-ResTime(平均响应时间):越小越好。平均响应时间越短,表示系统对用户请求的反应速度越快,用户体验更佳。
  2. Avg-ProcTime(平均处理时间):越小越好。处理时间越短,表示系统处理用户请求的效率更高,处理能力更强。
  3. Throughput(吞吐量):越大越好。吞吐量越高,表示系统在单位时间内处理的请求数量更多,处理能力更强。
  4. Bandwidth(带宽):越大越好。带宽越大,表示系统的数据传输能力更强,传输速度更快。
  5. Succ-Ratio(成功率):越大越好。成功率越高,表示系统处理请求的成功概率更高,系统更稳定、可靠。

D. 测试 Workload 参数

为了保障测试的公平性,我们均采用同一段 Workload 参数进行测试。

<?xmlversion="1.0" encoding="UTF-8" ?><workloadname="s3-50M-sample"description="sample benchmark for s3"><storagetype="s3"config="accesskey=<AK>;secretkey=<AK-sectet>;endpoint=http://内网Endpoint"/><workflow><workstagename="init"><worktype="init"workers="10"config="cprefix=examplebucketabc529;csuffix=-1250000000;containers=r(1,10)"/></workstage><workstagename="prepare"><worktype="prepare"workers="100"config="cprefix=examplebucketabc529;csuffix=-1250000000;containers=r(1,10);objects=r(1,1000);sizes=c(50)MB"/></workstage><workstagename="main"><workname="main"workers="100"runtime="300"><operationtype="read"ratio="50"config="cprefix=examplebucketabc529;csuffix=-1250000000;containers=u(1,10);objects=u(1,1000)"/><operationtype="write"ratio="50"config="cprefix=examplebucketabc529;csuffix=-1250000000;containers=u(1,10);objects=u(1000,2000);sizes=c(50)MB"/></work></workstage><workstagename="cleanup"><worktype="cleanup"workers="10"config="cprefix=examplebucketabc529;csuffix=-1250000000;containers=r(1,10);objects=r(1,2000)"/></workstage><workstagename="dispose"><worktype="dispose"workers="10"config="cprefix=examplebucketabc529;csuffix=-1250000000;containers=r(1,10)"/></workstage></workflow></workload>

参数释义

  1. <storage type="s3" config="..."/> 这行配置了存储的类型为S3,并给出了S3服务的访问密钥(accesskey和secretkey)以及服务的端点URL(endpoint)。
  2. <workflow> 定义了一系列的工作阶段。
  3. <workstage name="init"> 这是初始化阶段,会创建一定数量的存储容器。这个阶段的工作配置了10个工作线程(workers)用于创建存储容器。cprefixcsuffix用于生成容器的名称,containers=r(1,10)表示创建10个容器。
  4. <workstage name="prepare"> 这是准备阶段,会在每个存储容器中创建一定数量的对象。这个阶段配置了100个工作线程用于创建对象,objects=r(1,1000)表示在每个容器中创建1000个对象,sizes=c(50)MB表示每个对象的大小为50MB。
  5. <workstage name="main"> 这是主要阶段,进行读和写操作。这个阶段配置了100个工作线程,并持续运行300秒。在这个阶段,读操作和写操作的比例是1:1(ratio=”50″)。写操作会写入新的对象(objects=u(1000,2000)),每个对象的大小为50MB。
  6. <workstage name="cleanup"> 这是清理阶段,会删除所有创建的对象。这个阶段配置了10个工作线程用于删除对象,objects=r(1,2000)表示删除每个容器中的2000个对象。
  7. <workstage name="dispose"> 这是结束阶段,会删除所有创建的存储容器。这个阶段配置了10个工作线程用于删除容器。

三、对比测试的结果

A、阿里云OSS测试结果

通用报告

操作类型 操作总数 处理数据量 平均响应时间 平均处理时间 吞吐量 带宽 成功率
op1: 初始化 -写入 0 ops 0 B N/A N/A 0 op/s 0 B/S N/A
op1: 准备 -写入 10 kops 500 GB 3715.65 ms 70.34 ms 26.94 op/s 1.35 GB/S 100%
op1: 读取 7.47 kops 373.35 GB 3072.36 ms 31.01 ms 25.02 op/s 1.25 GB/S 100%
op2: 写入 7.4 kops 370.15 GB 932.3 ms 74.93 ms 24.8 op/s 1.24 GB/S 100%
op1: 清理 -删除 20 kops 0 B 8.88 ms 8.88 ms 1136.28 op/s 0 B/S 100%
op1: 处理 -删除 0 ops 0 B N/A N/A 0 op/s 0 B/S N/A

响应时间报告

操作类型 60%响应时间 80%响应时间 90%响应时间 95%响应时间 99%响应时间 100%响应时间
初始化-写入 N/A N/A N/A N/A N/A N/A
准备-写入 < 3,890毫秒 < 4,680毫秒 < 5,330毫秒 < 5,900毫秒 < 7,190毫秒 < 9,800毫秒
读取 < 3,220毫秒 < 3,710毫秒 < 4,110毫秒 < 4,470毫秒 < 5,150毫秒 < 7,130毫秒
写入 < 860毫秒 < 1,080毫秒 < 1,390毫秒 < 1,810毫秒 < 2,660毫秒 < 5,390毫秒
清理-删除 < 10毫秒 < 20毫秒 < 20毫秒 < 20毫秒 < 30毫秒 < 270毫秒
处理-删除 N/A N/A N/A N/A N/A N/A

具体参数图表

B. 百度云结果

通用报告

操作类型 操作总数 处理数据量 平均响应时间 平均处理时间 吞吐量 带宽 成功率
op1: 初始化 -写入 0 ops 0 B N/A N/A 0 op/s 0 B/S N/A
op1: 准备 -写入 10 kops 500 GB 6558.27 ms 645.14 ms 15.25 op/s 762.72 MB/S 100%
op1: 读取 4.32 kops 215.8 GB 5378.56 ms 88.53 ms 14.5 op/s 724.85 MB/S 100%
op2: 写入 4.28 kops 214.05 GB 1531.06 ms 617.09 ms 14.38 op/s 719.1 MB/S 100%
op1: 清理 -删除 20 kops 0 B 34.73 ms 34.73 ms 298.77 op/s 0 B/S 100%
op1: 处理 -删除 0 ops 0 B N/A N/A 0 op/s 0 B/S N/A

响应时间报告

操作类型 60%响应时间 80%响应时间 90%响应时间 95%响应时间 99%响应时间 100%响应时间
初始化-写入 N/A N/A N/A N/A N/A N/A
准备-写入 < 6,870毫秒 < 7,670毫秒 < 8,300毫秒 < 8,830毫秒 < 9,880毫秒 < 14,120毫秒
读取 < 6,490毫秒 < 7,910毫秒 < 8,940毫秒 < 9,740毫秒 < 11,240毫秒 < 15,170毫秒
写入 < 1,490毫秒 < 2,210毫秒 < 2,790毫秒 < 3,270毫秒 < 4,220毫秒 < 5,710毫秒
清理-删除 < 40毫秒 < 40毫秒 < 50毫秒 < 60毫秒 < 130毫秒 < 820毫秒
处理-删除 N/A N/A N/A N/A N/A N/A

具体参数图表

C. 移动云结果

通用报告

操作类型 操作总数 处理数据量 平均响应时间 平均处理时间 吞吐量 带宽 成功率
op1: 初始化 -写入 0 ops 0 B N/A N/A 0 op/s 0 B/S N/A
op1: 准备 -写入 10 kops 500 GB 4765 ms 181.08 ms 20.99 op/s 1.05 GB/S 100%
op1: 读取 6.16 kops 308.15 GB 2573.09 ms 18.51 ms 20.67 op/s 1.03 GB/S 100%
op2: 写入 6.14 kops 307.15 GB 2272.92 ms 177.94 ms 20.6 op/s 1.03 GB/S 100%
op1: 清理 -删除 20 kops 0 B 4.47 ms 4.47 ms 2284.39 op/s 0 B/S 100%
op1: 处理 -删除 0 ops 0 B N/A N/A 0 op/s 0 B/S N/A

响应时间报告

操作类型 60%响应时间 80%响应时间 90%响应时间 95%响应时间 99%响应时间 100%响应时间
初始化-写入 N/A N/A N/A N/A N/A N/A
准备-写入 < 4,950毫秒 < 5,570毫秒 < 6,090毫秒 < 6,530毫秒 < 7,440毫秒 < 11,110毫秒
读取 < 2,570毫秒 < 3,950毫秒 < 4,520毫秒 < 4,930毫秒 < 5,730毫秒 < 8,570毫秒
写入 < 2,730毫秒 < 3,450毫秒 < 4,000毫秒 < 4,460毫秒 < 5,460毫秒 < 7,660毫秒
清理-删除 < 10毫秒 < 10毫秒 < 10毫秒 < 10毫秒 < 10毫秒 < 40毫秒
处理-删除 N/A N/A N/A N/A N/A N/A

具体参数图表

分析与结论

根据提供的COSbench测试结果,我们可以从以下几个关键指标进行分析:

  1. 处理数据量:这个指标可以说明测试过程中处理了多少数据。在这个测试中,所有的对象存储服务都处理了类似的数据量,这说明测试的负载是相等的。
  2. 平均响应时间:这个指标表示了对象存储服务处理请求的平均时间,包括了网络延迟和处理时间。从这个指标来看,阿里云OSS的平均响应时间在读取和写入操作上都是最低的,表明其性能优于其他两个对象存储产品。
  3. 平均处理时间:这个指标代表了对象存储服务实际处理请求所需的时间。阿里云OSS和移动云在此项上表现优异,百度云BOS则稍显逊色。
  4. 吞吐量:这个指标衡量了对象存储服务在单位时间内处理的操作数量。在这个测试中,阿里云OSS的吞吐量略高于其他两个对象存储产品。
  5. 带宽:这个指标表示了对象存储服务在单位时间内处理的数据量。阿里云OSS在这个指标上也领先其他两个对象存储产品。
  6. 成功率:所有云服务在这个测试中的成功率都是100%,说明在测试过程中没有操作失败。
  7. 响应时间分布:这个指标表明了对象存储服务响应时间的分布情况,对于性能的稳定性和一致性非常重要。从60%到100%的响应时间分布来看,阿里云OSS在读取和写入操作上都显示出较好的一致性和稳定性。

总的来说,阿里云OSS在这个测试中的性能表现最好,其平均响应时间、平均处理时间、吞吐量和带宽都优于百度云BOS和移动云EOS。百度云BOS的性能在这三者中较弱,特别是在平均处理时间和吞吐量上。移动云EOS的表现则在阿里云OSS和百度云BOS之间。虽然移动云EOS在一些关键指标上不及阿里云OSS,但它的性能表现还是比百度云要好。

在涉及到大规模对象存储的场景中,如大数据分析、生物基因研究、科研以及高性能计算等领域,阿里云OSS和移动云EOS表现出了卓越的性能和稳定性,因此它们更为适合企业级的应用。

首先,这两个平台都具备高度的可扩展性和数据冗余,能够轻松处理大规模的数据存储需求。同时,他们提供了优秀的读写性能和低延迟响应,从而确保了在数据密集型的应用场景中仍能保持高效的数据处理。

再者,这两个平台还提供了多重的数据安全保护,包括数据加密、数据备份以及灾难恢复等,从而为企业的重要数据提供了可靠的安全保障。

最后,阿里云OSS和移动云EOS都有着良好的生态系统支持,为企业提供了丰富的API和工具集,使得企业能够更好地进行集成和开发,提升业务的效率和效果。

因此,综合以上因素,阿里云OSS和移动云EOS是在大数据分析、生物基因研究、科研以及高性能计算等领域的企业级应用中的优选之选。

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
18天前
|
数据采集 监控 机器人
浅谈网页端IM技术及相关测试方法实践(包括WebSocket性能测试)
最开始转转的客服系统体系如IM、工单以及机器人等都是使用第三方的产品。但第三方产品对于转转的业务,以及客服的效率等都产生了诸多限制,所以我们决定自研替换第三方系统。下面主要分享一下网页端IM技术及相关测试方法,我们先从了解IM系统和WebSocket开始。
34 4
|
2月前
|
机器学习/深度学习 人工智能 监控
提升软件质量的关键路径:高效测试策略与实践在软件开发的宇宙中,每一行代码都如同星辰般璀璨,而将这些星辰编织成星系的过程,则依赖于严谨而高效的测试策略。本文将引领读者探索软件测试的奥秘,揭示如何通过精心设计的测试方案,不仅提升软件的性能与稳定性,还能加速产品上市的步伐,最终实现质量与效率的双重飞跃。
在软件工程的浩瀚星海中,测试不仅是发现缺陷的放大镜,更是保障软件质量的坚固防线。本文旨在探讨一种高效且创新的软件测试策略框架,它融合了传统方法的精髓与现代技术的突破,旨在为软件开发团队提供一套系统化、可执行性强的测试指引。我们将从测试规划的起点出发,沿着测试设计、执行、反馈再到持续优化的轨迹,逐步展开论述。每一步都强调实用性与前瞻性相结合,确保测试活动能够紧跟软件开发的步伐,及时适应变化,有效应对各种挑战。
|
3月前
|
测试技术 数据库 UED
Python 性能测试进阶之路:JMeter 与 Locust 的强强联合,解锁性能极限
【9月更文挑战第9天】在数字化时代,确保软件系统在高并发场景下的稳定性至关重要。Python 为此提供了丰富的性能测试工具,如 JMeter 和 Locust。JMeter 可模拟复杂请求场景,而 Locust 则能更灵活地模拟真实用户行为。结合两者优势,可全面评估系统性能并优化瓶颈。例如,在电商网站促销期间,通过 JMeter 模拟大量登录请求并用 Locust 模拟用户浏览和购物行为,可有效识别并解决性能问题,从而提升系统稳定性和用户体验。这种组合为性能测试开辟了新道路,助力应对复杂挑战。
122 2
|
16天前
|
算法 Java 测试技术
Benchmark.NET:让 C# 测试程序性能变得既酷又简单
Benchmark.NET是一款专为 .NET 平台设计的性能基准测试框架,它可以帮助你测量代码的执行时间、内存使用情况等性能指标。它就像是你代码的 "健身教练",帮助你找到瓶颈,优化性能,让你的应用跑得更快、更稳!希望这个小教程能让你在追求高性能的路上越走越远,享受编程带来的无限乐趣!
62 13
|
2月前
|
监控 测试技术 PHP
性能和压力测试
【10月更文挑战第10天】性能和压力测试
120 60
|
1月前
|
数据采集 自然语言处理 数据库
深入体验阿里云通义灵码:测试与实例展示
阿里云通义灵码是一款强大的代码生成工具,支持自然语言描述需求,快速生成高质量代码。它在测试、代码质量和用户体验方面表现出色,能够高效地生成 Python 和 Java 等语言的代码,助力开发者提升开发效率和代码质量。无论是新手还是资深开发者,都能从中受益匪浅。
深入体验阿里云通义灵码:测试与实例展示
|
23天前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
54 1
|
29天前
|
缓存 Ubuntu Linux
Linux环境下测试服务器的DDR5内存性能
通过使用 `memtester`和 `sysbench`等工具,可以有效地测试Linux环境下服务器的DDR5内存性能。这些工具不仅可以评估内存的读写速度,还可以检测内存中的潜在问题,帮助确保系统的稳定性和性能。通过合理配置和使用这些工具,系统管理员可以深入了解服务器内存的性能状况,为系统优化提供数据支持。
35 4
|
28天前
|
监控 JavaScript 前端开发
如何在实际应用中测试和比较React和Vue的性能?
总之,通过多种方法的综合运用,可以相对客观地比较 React 和 Vue 在实际应用中的性能表现,为项目的选择和优化提供有力的依据。
34 1
|
1月前
|
分布式计算 Java 开发工具
阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。

相关产品

  • 对象存储