电子说
一、Flexus 云服务器 X 实例概要
Flexus云服务器X实例是华为云推出的一款面向中小企业和开发者的柔性算力云服务器。这款服务器的主要特点是其灵活的 vCPU 内存配比,支持热变配不中断业务变更规格,以及能够智能感知业务负载并自动调整资源配置,如下图。
1.1 Flexus 云服务器 X 实例摘要
Flexus 云服务器 X 实例的设计理念是提供一个更加灵活和高效的计算资源管理方式。其通过智能调整资源配置,能够更好地满足不同业务的需求,提高资源利用率。此外,该实例还提供了丰富的公共镜像供用户选择,方便快速部署各种应用和服务。用户还可以根据自己的需要灵活调整虚拟 CPU 和内存的配比,以满足不同场景的需求。
1.2 产品特点
除了之前提到的灵活的 vCPU 内存配比、支持热变配、智能感知业务负载以及出色的存储性能外,Flexus 云服务器 X 实例的产品特点还包括以下几个方面:
1. 高性能与成本优化:
1. Flexus X 实例通过 X-Turbo 加速技术,实现了性能上的显著提升,为用户带来了倍增的性能体验。
2. 该实例提供了经济型的价格和近乎旗舰级的性能,实现了跃级体验,同时降低了算力成本。
2. 广泛的应用场景:
1. Flexus X 实例覆盖了高科技、零售、金融、游戏等多个行业的大多数通用工作负载场景,包括网络应用、数据库、虚拟桌面、分析索引、微服务、CI/CD 等。
2. 它能够满足多样化的业务需求,为中小企业和开发者提供即开即用、超快部署的云计算解决方案。
3. 安全性与可靠性:
1. Flexus X 实例拥有华为云旗舰级云服务器产品相同的单 AZ 99.975%可用性,跨 AZ 99.995%可用性,确保了服务的高可靠性。
2. 该实例还提供了智能识别和全面的安全防护技术,确保提供智能化且安全的云服务。
4. 易用性与维护性:
1. Flexus X 实例内置了丰富的解决方案与镜像,支持零门槛快速搭建业务环境,轻松启动和管理业务。
2. 用户可以通过简单的配置和购买流程,快速上手并使用该实例。
5. 灵活的计费模式:
1. Flexus X 实例支持包年/包月和按需计费等多种计费模式,用户可以根据自己的业务需求选择合适的计费方式。
官网如下图:
1.3 存储方面性能
Flexus 云服务器 X 实例在存储方面表现出色。它支持多种存储类型,包括系统盘和数据盘,且系统盘为通用型 SSD,确保了数据读写的高速性和稳定性。用户可以根据自己的业务需求选择合适的存储类型和容量。此外,该实例还支持快照和备份功能,确保数据的安全性和可恢复性。在数据处理和存储方面,Flexus 云服务器 X 实例满足了现代企业对高性能和高可靠性的要求。
Flexus 云服务器 X 实例以其灵活的资源配置、高效的计算性能和可靠的存储能力,成为了中小企业和开发者的优选云服务器产品。
接下来,我们就利用 FIO 工具来测试一下 Flexus 云服务器 X 实例在存储方面的性能怎么样,主要从 IOPS,IO 延迟、IOPS 和吞吐量等方面进行测试。
1.4 测评服务器规格
二、FIO 工具
FIO(Flexible I/O Tester)是一款开源的磁盘 I/O 性能测试工具,旨在提供一种全方面的测试方案,能够模拟常见的 I/O 场景,并记录和评估存储系统(如硬盘、固态硬盘、网络存储等)在不同负载条件下的输入/输出(I/O)性能。该工具广泛应用于标准测试、QA(质量保证)、验证测试等领域,并支持多种操作系统,如 Linux、FreeBSD、NetBSD、OS X、OpenSolaris、AIX、HP-UX、Windows 等。对于存储性能的测试,首选就是 FIO。在本次测评中测试示例均使用 fio jobfile 方式,即通过一个 job 文件来描述待访真的 IO 负载,一个 job 文件可以控制产生任意数目的线程和文件,典型的 job 文件包含一个 global 段(定义共享参数)和一个或多少 job 段(描述具体要产生的 job)。
2.1 安装部署 FIO
其下载地址:https://brick.kernel.dk/snaps/fio-2.1.10.tar.gz
或者登录其官网:http://freshmeat.sourceforge.net/projects/fio/进行下载。但是官网很难找得到入口在哪,还是直接访问第一个链接就可以下载了。
接下来我们上传到服务器中,还是老规矩,我们使用 cloudshell 远程登陆我们的服务器。接下来我们将刚刚下载的 FIO 压缩包上传到服务器的 opt 目录下:如下图所示:
OK,我们输入 ls 命令看看是否上传成功。
可以看得到,我们的安装包已经上传进去了,右侧文件管理器也有该压缩包。接下来我们解压安装:
执行以下命令解压缩安装包到我们的/usr/local 目录下:
tar -zxvf fio-2.1.10.tar.gz -C /usr/local
注意:这里最好是先安装好下面两个依赖再执行,上面的安装命令,这里我忘记了,因此还要重新编译 fio
按顺序执行以下命令进行安装:
cd /usr/local/fio-2.1.10
./configure
make
make install
OK,到这里我们就基本安装完成了,然后使用 fio -v 命令查看一下版本看看是否安装好:
因为 fio 还需要 libaio 依赖,然后依次执行以下命令,安装 libaio:
sudo yum -y install libaio
sudo yum -y install libaio-devel
注意:这里最好是先安装好上面两个依赖再执行,上面的安装命令,这里我忘记了,因此还要重新编译 fio
可以看到我们已经安装好了。
2.2 主要性能指标概要
下列这些都是服务器关于存储性能的相关指标
1. IOPS(Input/Output Operations Per Second):
1. 定义:每秒的输入输出操作次数,是衡量存储设备性能的重要指标之一。
2. 重要性:IOPS 越高,表示存储设备在单位时间内能够处理的 I/O 操作越多,性能越好。
2. 吞吐量(Throughput):
1. 定义:存储设备在单位时间内传输的数据量。
2. 重要性:吞吐量越大,表示存储设备的数据传输速度越快,性能越好。
3. 延迟(Latency):
1. 定义:I/O 操作的响应时间,即从发出 I/O 请求到接收到响应的时间。
2. 重要性:延迟越小,表示存储设备的响应速度越快,用户体验越好。
4. CPU 利用率:
1. 定义:在执行 I/O 操作时,CPU 的使用率。
2. 重要性:CPU 利用率反映了 I/O 操作对系统资源的占用情况,过高的 CPU 利用率可能导致系统性能下降。
5. I/O 深度:
1. 定义:并发发出的 I/O 请求数,也称为队列深度。
2. 重要性:I/O 深度越大,表示存储设备能够同时处理的 I/O 请求越多,可能提高系统的吞吐量。
6. 读写块大小:
1. 定义:每次 I/O 操作传输的数据块大小。
2. 重要性:读写块大小对存储设备的性能有显著影响,不同的块大小可能导致不同的 IOPS 和吞吐量。
三、进行压测
不过在测试之前,我们需要执行以下命令查看存储设备是否已经 4KiB 对齐。如果不是 4KiB 对齐,则对性能影响较大。fdisk -lu 如果返回的 Start 值能够被 8 整除则表示 4KiB 对齐。
可以看得到,我们这里的 start 值为 2048,2048%4 = 0 是合适的。
执行以下命令,切换路径。cd /tmp
3.1 测试全盘随机读 IO 延迟
创建 job_file 文件测试随机读的 IO 延迟,文件内容如下。创建后,执行命令 fio job_file 查看测试结果。
[global]ioengine=libaiouserspace_reapruntime=60direct=1group_reportingrandrepeat=0norandommapramp_time=6iodepth=1numjobs=1exitall[randread4k]filename=/dev/vda1rw=randreadbs=4K
这个测试结果是通过 fio 工具进行的随机读取测试,具体是针对 4KB 大小的块进行的。以下是对测试结果的详细解读:
性能指标
· 总读取量:1222.1MB
· 带宽:20870KB/s(平均)
· IOPS:5217(每秒输入输出操作数)
延迟统计
· 服务时间(slat):平均 2.93 微秒,标准差 1.08 微秒
· 完成时间(clat):平均 188.30 微秒,标准差 129.33 微秒
· 总延迟(lat):平均 191.30 微秒,标准差 129.34 微秒
· 完成时间百分位数:
o 1%:137 微秒
o 5%:143 微秒
o 10%:149 微秒
o ...
o 99.99%:5088 微秒(即 5.088 毫秒)
带宽分布
· 最小带宽:0KB/s
· 最大带宽:22184KB/s
· 99.25%的时间内,带宽在 20712.93KB/s 左右
延迟分布
· 250 微秒以内:89.49%
· 500 微秒以内:99.46%(包括 250 微秒以内的)
· 1 毫秒以内:99.60%(包括 500 微秒以内的)
· 2 毫秒以内:99.73%(包括 1 毫秒以内的)
· ...
CPU 使用情况
· 用户态 CPU 使用率:0.92%
· 系统态 CPU 使用率:3.05%
IO 深度与提交/完成状态
· 所有 IO 操作都在 IO 深度为 1 时完成
· 提交和完成操作都集中在 4 个块大小(即 16KB)的批次上
磁盘统计
· vda(虚拟磁盘设备):
o 读取 IO 操作数:343976
o 写入 IO 操作数:43(很少,可能是元数据或后台操作)
o 合并读取操作:0(没有合并)
o 合并写入操作:29(有一些合并)
o 队列中时间:64388 个 ticks(表示磁盘忙碌程度)
o 磁盘利用率:99.90%
总结
这个测试结果表明,在随机读取 4KB 块的情况下,系统能够达到约 20870KB/s 的带宽和 5217 IOPS 的性能。延迟方面,大部分读取操作在 250 微秒以内完成,99.99%的读取操作在 5 毫秒以内完成。CPU 使用率相对较低,表明测试期间 CPU 不是瓶颈。磁盘利用率非常高,接近 100%,说明磁盘在测试期间几乎一直在忙碌。
3.2 测试全盘随机写 IO 延迟
创建 job_file 文件测试随机读的 IO 延迟,文件内容如下。创建后,执行命令 fio job_file 查看测试结果。
[global]
ioengine=libaio
userspace_reap
time_based runtime=60
direct=1
group_reporting randrepeat=0
norandommap ramp_time=6
iodepth=1
numjobs=1
exitall
[randwrite4k]
filename=/dev/vda1
rw=randwrite bs=4K
下面就是上述结果的解读:
总体性能指标
·
o 总写入数据量:429932KB(约 420MB)
o 平均带宽:7165.5KB/s(或约 7.17MB/s)
o 每秒 I/O 操作次数(IOPS):1791
o 运行时间:60001 毫秒(60 秒)
·
提交时延(slat):
·
o 最小值:2 微秒
o 最大值:52 微秒
o 平均值:4.73 微秒
o 标准差:1.86 微秒
o 提交时延主要由服务器处理器和操作系统决定,也受 SSD 的接口协议和工作模式影响。在这个测试中,提交时延非常低且稳定。
·
完成时延(clat):
·
o 最小值:319 微秒
o 最大值:123271 微秒(即 123.271 毫秒)
o 平均值:552.69 微秒
o 标准差:765.64 微秒
o 完成时延主要由 SSD 决定,反映了从 I/O 提交到 I/O 完成的时长。在这个测试中,完成时延的波动较大,但平均值仍在可接受范围内。
·
总时延(lat):
·
o 最小值:324 微秒
o 最大值:123275 微秒(即 123.275 毫秒)
o 平均值:557.54 微秒
o 标准差:765.64 微秒
o 总时延是提交时延和完成时延之和,反映了从 fio 创建 I/O 到 I/O 完成的时长。
· 最小带宽:0KB/s(测试开始时)
· 最大带宽:7880KB/s
· 带宽利用率:99.24%
· 平均带宽:7110.49KB/s(与平均带宽指标略有差异,但相差不大)
· 标准差:778.76KB/s
·
CPU 使用率:
·
o 用户态:0.30%
o 系统态:1.76%
o 上下文切换次数:117896 次
o CPU 使用率较低,表明测试对 CPU 资源的消耗不大。
·
I/O 深度:
·
o I/O 深度为 1 时,占比为 109.7%(超过 100%可能是因为四舍五入或并发 I/O 请求数略有波动)
o 其他 I/O 深度(2、4、8、16、32、>=64)的占比均为 0%
o 这表明测试期间主要使用的是 I/O 深度为 1 的并发 I/O 请求。
·
磁盘 I/O 操作数:
·
o 读操作数:305 次
o 写操作数:117792 次
o 合并读操作数:0 次
o 合并写操作数:33 次
o 磁盘主要忙于写操作。
·
磁盘忙碌时间:
·
o 读操作忙碌时间:258 个 ticks
o 写操作忙碌时间:64950 个 ticks
o 队列中等待时间:65208 个 ticks
o 磁盘利用率:99.88%
o 磁盘在测试期间几乎一直处于忙碌状态。
这份 fio 测试结果表明,存储系统在执行 4KB 大小的随机写入操作时表现出良好的性能。尽管完成时延存在一定的波动,但平均带宽和 IOPS 均保持在较高水平。同时,CPU 使用率较低,磁盘利用率较高,表明测试期间存储系统得到了充分的利用。
3.3 测试随机读 IOPS
创建 job_file 文件测试随机读的 IOPS,文件内容如下。创建后,执行命令 fio job_file 查看测试结果。
[global]ioengine=libaiouserspace_reaptime_basedruntime=60direct=1group_reportingrandrepeat=0norandommapramp_time=6iodepth=128numjobs=8exitall[randread4k]filename=/dev/vda1rw=randreadbs=4k
这份 fio 测试结果提供了关于存储系统在执行 4KB 大小的随机读取操作时的详细性能数据。以下是对测试结果的详细解读:
总体性能指标
· 总读取数据量:1888.5MB
· 平均带宽:32227KB/s(或约 32.23MB/s)
· 每秒 I/O 操作次数(IOPS):8039
· 运行时间:60003 毫秒(60 秒)
时延分析
· 提交时延(slat):
o 最小值:2 微秒
o 最大值:975348 微秒(即 0.975 秒)
o 平均值:830.63 微秒
o 标准差:27773.96 微秒
o 提交时延的波动较大,但平均值仍在可接受范围内。这可能是由于系统负载、中断处理等因素导致的。
· 完成时延(clat):
o 最小值:285 微秒
o 最大值:1001.5K 微秒(即 1001.5 毫秒或 1 秒)
o 平均值:128273.66 微秒(即 128.27 毫秒)
o 标准差:323745.43 微秒
o 完成时延的波动非常大,且平均值较高。这表明存储系统在处理随机读取请求时存在较大的延迟。
· 总时延(lat):
o 最小值:288 微秒
o 最大值:1001.5K 微秒(即 1001.5 毫秒或 1 秒)
o 平均值:129126.08 微秒(即 129.13 毫秒)
o 标准差:324666.03 微秒
o 总时延的波动和平均值都与完成时延相似,因为完成时延在总时延中占主导地位。
此外,测试还提供了时延的百分位数数据。例如,99.99%的 I/O 操作在 987136 微秒(即 0.987 毫秒)内完成,但需要注意的是,这里的 99.99%百分位数实际上受到了极端值的影响,因为大部分操作的完成时延都远低于这个值。
带宽分析
· 最小带宽:0KB/s(测试开始时)
· 最大带宽:9719KB/s
· 带宽利用率和平均值等数据在测试报告中未直接给出百分比形式,但可以通过计算得出。例如,平均带宽为 3935.28KB/s(在多个并发 I/O 请求下测得),这表明存储系统在测试期间能够提供稳定的带宽输出。然而,与平均带宽 32227KB/s(整体测试的平均值)相比,单个请求的带宽波动较大。
磁盘统计信息
· 磁盘 I/O 操作数:
o 读操作数:536101 次
o 写操作数:48 次(几乎可以忽略不计)
o 磁盘主要忙于读操作。
· 磁盘合并操作数:
o 读操作合并数:0 次(表明读操作没有被合并)
o 写操作合并数:37 次(但写操作次数很少,所以合并操作的影响不大,因为这里我们主要测试的是随机读情况下的 IOPS)
· 磁盘忙碌时间:
o 读操作忙碌时间:31904414 个 ticks(表明磁盘在测试期间几乎一直处于忙碌状态)
o 写操作忙碌时间:1244 个 ticks(很少)
o 队列中等待时间:31905658 个 ticks(与读操作忙碌时间相近)
o 磁盘利用率:93.49%(表明磁盘在测试期间得到了充分的利用)
这份 fio 测试结果表明,存储系统在执行 4KB 大小的随机读取操作时,虽然能够提供较高的平均带宽和 IOPS,但完成时延的波动较大且平均值较高。但是这可能是由于存储系统的内部机制、磁盘性能或系统负载等因素导致的。为了改善性能,可以考虑优化存储系统的配置、升级硬件或降低系统负载等方法。同时,进行更多类型的测试(如顺序读、混合读写等)并分析测试结果也是很有必要的。 但整体下面我们主要测试的是随机读的情况下。
3.4 测试随机写 IOPS
创建 job_file 文件测试随机写的 IOPS,文件内容如下。创建后,执行命令 fio job_file 查看测试结果。
[global]ioengine=libaiouserspace_reaptime_basedruntime=60direct=1group_reportingrandrepeat=0norandommapramp_time=6iodepth=128numjobs=8exitall[randwrite4k]filename=/dev/vda1rw=randwritebs=4k
这份 fio 测试结果提供了关于存储系统在执行 4KB 大小的随机写入操作时的详细性能数据。以下是对测试结果的解读:
总体性能指标
· 总写入数据量:1883.8MB
· 平均带宽:32147KB/s(或约 32.15MB/s)
· 每秒 I/O 操作次数(IOPS):8019
· 运行时间:60003 毫秒(60 秒)
时延分析
· 提交时延(slat):
o 最小值:2 微秒
o 最大值:974711 微秒(即 0.975 秒)
o 平均值:807.85 微秒
o 标准差:27292.34 微秒
o 提交时延的波动较大,但平均值在可接受范围内,表明系统处理 I/O 请求的中断和调度效率尚可。
· 完成时延(clat):
o 最小值:481 微秒
o 最大值:1011.9K 微秒(即 1011.9 毫秒或 1 秒多)
o 平均值:128600.31 微秒(即 128.6 毫秒)
o 标准差:322867.92 微秒
o 完成时延的波动非常大,且平均值较高。这表明存储系统在处理随机写入请求时存在较大的延迟,可能是由于磁盘性能瓶颈、存储系统内部处理机制或系统负载等因素导致的。
· 总时延(lat):
o 最小值:484 微秒
o 最大值:1011.9K 微秒(即 1011.9 毫秒或 1 秒多)
o 平均值:129420.85 微秒(即 129.42 毫秒)
o 标准差:323748.74 微秒
o 总时延的波动和平均值与完成时延相似,因为完成时延在总时延中占主导地位。
此外,测试还提供了时延的百分位数数据。例如,99.99%的 I/O 操作在 995328 微秒(即 0.995 毫秒)内完成,但需要注意的是,这里的 99.99%百分位数实际上受到了极端值的影响,因为大部分操作的完成时延都远低于这个值。
带宽分析
· 最小带宽:0KB/s(测试开始时)
· 最大带宽:9237KB/s
· 平均带宽利用率和值等数据表明,存储系统在测试期间能够提供稳定的带宽输出,但单个请求的带宽波动较大。
CPU 和 I/O 深度
· CPU 使用率:
o 用户态:0.08%
o 系统态:0.56%
o CPU 使用率非常低,表明测试对 CPU 资源的消耗很小。
· I/O 深度:
o 在测试期间,主要使用的是 I/O 深度大于等于 64 的并发 I/O 请求(占比 111.6%,超过 100%可能是因为四舍五入或并发 I/O 请求数略有波动)。
o 提交和完成 I/O 请求时,主要使用的是 4KB 大小的块(占比 100%)。
磁盘统计信息
· 磁盘 I/O 操作数:
o 读操作数:375 次(很少,因为主要是写入测试)
o 写操作数:535818 次
o 磁盘主要忙于写操作。
· 磁盘合并操作数:
o 读操作合并数:0 次
o 写操作合并数:41 次(写操作合并次数相对较多,但考虑到写操作总数很大,合并比例仍然很低,因为我们这里主要是测试随机写的 IOPS)
· 磁盘忙碌时间:
o 读操作忙碌时间:21348 个 ticks(很少)
o 写操作忙碌时间:32530818 个 ticks(表明磁盘在测试期间几乎一直处于忙碌状态)
o 队列中等待时间:32552166 个 ticks(与写操作忙碌时间相近)
o 磁盘利用率:90.91%(表明磁盘在测试期间得到了充分的利用)
综上所述,这份 fio 测试结果表明,存储系统在执行 4KB 大小的随机写入操作时,虽然能够提供较高的平均带宽和 IOPS,但完成时延的波动较大且平均值较高。这可能是由于存储系统的内部机制、磁盘性能或系统负载等因素导致的。为了改善性能,可以考虑优化存储系统的配置、升级硬件(如使用更快的 SSD)、调整 I/O 调度策略或降低系统负载等方法。同时,进行更多类型的测试(如顺序写、混合读写等)并分析测试结果也是很有必要的。
整体感觉来说,还是非常不错的,带宽方面也可以提供稳定输出,且磁盘的随机读写性能都非常好。
结合上面测评来说,华为云 Flexus 云服务器 X 实例以其柔性算力、高性能加速、成本优化和安全可靠等特点,成为中小企业在 828 企业节期间选择云服务的优选之一。如果您正在寻找一款性价比高、性能卓越的云服务器产品,不妨考虑华为云 Flexus 云服务器 X 实例。点击下方卡片立即跳转查看吧:
Flexus云服务器X实例-华为云Flexus云服务器X实例(Flexus X)是柔性算力,六倍性能,旗舰体验,覆盖高科技、零售、金融、游戏等行业大多数通用工作负载场景。
https://www.huaweicloud.com/product/flexus-x.html
审核编辑 黄宇
全部0条评论
快来发表一下你的评论吧 !