linux小白如何衡量云硬盘的性能 根据性能选择硬盘

提供的块存储设备根据类型的不同拥有不同的性能和价格,详细信息请参见 云硬盘类型。由于不同应用程序的工作负载不同,若未提供足够的 I/O 请求来充分利用云硬盘时,可能无法达到云硬盘的最大性能。 一般使用以下指标衡量云硬盘的性能:

IOPS:每秒读/写次数,单位为次(计数)。存储设备的底层驱动类型决定了不同的 IOPS。

吞吐量:每秒的读写数据量,单位为MB/s。

时延:I/O 操作的发送时间到接收确认所经过的时间,单位为微秒

linux小白如何衡量云硬盘的性能 根据性能选择硬盘

操作前须知(重要)

警告

本文使用 FIO 作为测试工具,请不要在系统盘上进行 FIO 测试,避免损坏系统重要文件

为避免底层文件系统元数据损坏导致数据损坏,请不要在业务数据盘上进行测试。请使用测试机器未存放业务数据的云硬盘进行压测,并提前 创建快照 保障您的数据安全。

请确保/etc/fstab文件配置项中没有被测硬盘的挂载配置,否则将导致云服务器启动失败

测试工具

FIO 是测试磁盘性能的工具,用来对硬件进行压力测试和验证,本文以 FIO 为例。 使用 FIO 时,建议配合使用 libaio 的 I/O 引擎进行测试。请参见 工具安装 完成 FIO 和 libaio 的安装。

测试对象建议

建议在空闲的、未保存重要数据的硬盘上进行 FIO 测试,并在测试完后重新制作被测硬盘的文件系统。

测试硬盘性能时,建议直接测试裸数据盘(如 /dev/vdb)。

测试文件系统性能时,推荐指定具体文件测试(如 /data/file)。

工具安装

参见 使用标准登录方式登录 Linux 实例(推荐) 登录云服务器,本文以 CentOS 7.6 操作系统的云服务器为例。

执行以下命令,查看云硬盘是否4KiB对齐。

fdisk -lu

如下图所示,若返回结果中的 Start 值能被8整除即是4KiB对齐。否则请完成4KiB对齐后再进行测试。

linux小白如何衡量云硬盘的性能 根据性能选择硬盘

依次执行以下命令,安装测试工具 FIO 和 libaio。

yum install libaio -y
yum install libaio-devel -y
yum install fio -y

安装完成后,请参见测试示例开始进行云硬盘性能测试。

常见用例如下:

bs = 4k iodepth = 1:随机读/写测试,能反映硬盘的时延性能

执行以下命令,测试硬盘的随机写时延(/dev/target_device 替换成需要压测的设备名,压测前按注意事项做好快照备份

fio -bs=4k -ioengine=libaio -iodepth=1 -numjobs=1 -direct=1 -rw=randwrite -time_based -runtime=600 -refill_buffers -norandommap -randrepeat=0 -group_reporting -name=fio-randwrite-lat -size=10G -filename=/dev/target_device

执行以下命令,测试硬盘的随机读时延(/dev/target_device 替换成需要压测的设备名,压测前按注意事项做好快照备份)。

fio -bs=4k -ioengine=libaio -iodepth=1 -numjobs=1 -direct=1 -rw=randread -time_based -runtime=600 -refill_buffers -norandommap -randrepeat=0 -group_reporting -name=fio-randread-lat -size=10G -filename=/dev/target_device

执行以下命令,测试硬盘的随机混合读写时延(/dev/target_device 替换成需要压测的设备名,压测前按注意事项做好快照备份)。

fio -bs=4k -ioengine=libaio -iodepth=1 -numjobs=1 -direct=1 -rw=randrw -time_based -runtime=600 -refill_buffers -norandommap -randrepeat=0 -group_reporting -name=fio-randread-lat -size=10G -filename=/dev/target_device

示例:

登录云服务器后,执行以下命令,测试设备名为 /dev/vdc 的 SSD 云硬盘的随机混合读写时延性能

fio -bs=4k -ioengine=libaio -iodepth=1 -numjobs=1 -direct=1 -rw=randrw -time_based -runtime=100 -refill_buffers -norandommap -randrepeat=0 -group_reporting -name=fio-randrw-lat -size=1G -filename=/dev/vdc

测试结果如下图所示:

linux小白如何衡量云硬盘的性能 根据性能选择硬盘

bs = 4k iodepth = 32:随机读/写测试,能反映硬盘的 IOPS 性能

执行以下命令,测试硬盘的随机读 IOPS(/dev/target_device 替换成需要压测的设备名, 压测前按注意事项做好快照备份)。

fio -bs=4k -ioengine=libaio -iodepth=32 -numjobs=4 -direct=1 -rw=randread -time_based -runtime=600 -refill_buffers -norandommap -randrepeat=0 -group_reporting -name=fio-randread-iops -size=10G -filename=/dev/target_device

执行以下命令,测试硬盘的随机写 IOPS(/dev/target_device 替换成需要压测的设备名, 压测前按注意事项做好快照备份

fio -bs=4k -ioengine=libaio -iodepth=32 -numjobs=4 -direct=1 -rw=randwrite -time_based -runtime=600 -refill_buffers -norandommap -randrepeat=0 -group_reporting -name=fio-randwrite-iops -size=10G -filename=/dev/target_device

执行以下命令,测试硬盘的随机混合读写 IOPS(/dev/target_device 替换成需要压测的设备名, 压测前按注意事项做好快照备份

fio -bs=4k -ioengine=libaio -iodepth=32 -numjobs=4 -direct=1 -rw=randrw -time_based -runtime=600 -refill_buffers -norandommap -randrepeat=0 -group_reporting -name=fio-randrw-iops -size=10G -filename=/dev/target_device

示例:

登录云服务器后,执行以下命令,测试设备名为 /dev/vdc 的 SSD 云硬盘的随机读 IOPS 性能。

fio -bs=4k -ioengine=libaio -iodepth=32 -numjobs=4 -direct=1 -rw=randread -time_based -runtime=600 -refill_buffers -norandommap -randrepeat=0 -group_reporting -name=fio-randread-iops -size=10G -filename=/dev/vdc
linux小白如何衡量云硬盘的性能 根据性能选择硬盘

测试示例

不同场景的测试公式基本一致,只有 rw、iodepth 和 bs(block size)三个参数的区别。例如,每个工作负载适合的最佳 iodepth 不同,取决于您的特定应用程序对于 IOPS 和延迟的敏感程度。

参数说明:

参数名说明取值样例
bs每次请求的块大小。取值包括4k、8k及16k等。4k
ioengineI/O 引擎。推荐使用 Linux 的异步 I/O 引擎。libaio
iodepth请求的 I/O 队列深度。1
direct指定 direct 模式。True(1)表示指定 O_DIRECT 标识符,忽略 I/O 缓存,数据直写。False(0)表示不指定 O_DIRECT 标识符。默认为 True(1)。1
rw读写模式。取值包括顺序读(read)、顺序写(write)、随机读(randread)、随机写(randwrite)、混合随机读写(randrw)和混合顺序读写(rw,readwrite)。read
time_based指定采用时间模式。无需设置该参数值,只要 FIO 基于时间来运行。N/A
runtime指定测试时长,即 FIO 运行时长。100s
refill_buffersFIO 将在每次提交时重新填充 I/O 缓冲区。默认设置是仅在初始时填充并重用该数据。N/A
norandommap在进行随机 I/O 时,FIO 将覆盖文件的每个块。若给出此参数,则将选择新的偏移量而不查看 I/O 历史记录。N/A
randrepeat随机序列是否可重复,True(1)表示随机序列可重复,False(0)表示随机序列不可重复。默认为 True(1)。0
group_reporting多个 job 并发时,打印整个 group 的统计值。N/A
namejob 的名称。fio-read
sizeI/O 测试的寻址空间。1G
filename测试对象,即待测试的磁盘设备名称。/dev/sdb
numjobs并发线程数,默认为1。当被测试硬盘性能较高时推荐加大numjobs数(如2或4等)以增加压力。1

常见用例如下:

主题测试文章,只做测试使用。发布者:云大使,转转请注明出处:https://www.xp8.net/server/5585.html

(0)
打赏 微信扫一扫 微信扫一扫
Linux 小白数据误删如何实例数据恢复
上一篇 2026年1月13日 下午3:27
腾讯云服务器linux系统MBR 分区云硬盘扩容至大于2TiB
下一篇 2026年1月13日 下午3:56

相关推荐

  • win2008架设vpn如何新建用户指定IP地址的方法教程(图文)-windows教程-学派吧

    这篇文章主要介绍了win2008架设vpn 新建用户指定IP地址的方法,需要的朋友可以参考下 008架设vpn服务器完毕,新建账户,分配了静态IP地址,但是客户端拨号后获取了另一个IP怎么才能给客户端指定IP,这里就为大家分享一下 自己解决了,具体如下1、开启NPS, 2、创建并配置策略 (备注:本人新建账户均归属guests,故选择用户组添加“GUESTS…

    服务器运维 2018年12月2日
    3.9K00
  • 从阿里云域名解析到DNSPod,如何实现 DNS 平滑迁移?

    腾讯云解析 DNSPod 向全网域名提供快速、安全的智能解析服务,拥有精准调度、安全防护、容灾切换等能力,为您全面提升业务可用性、稳定性。 解析记录迁移 导出解析记录 进入后单击导入/导出,并选择导出记录 导出文件类型选择zone,并单击立即导出。 导出完成后重命名文件,添加.zone后缀,如下两图所示: 导入解析记录 添加需要迁移的域名,以dnstest.…

    2026年1月12日
    44700
  • 亲测windows更改计算机上的远程桌面3389的侦听端口

    远程桌面服务允许用户通过远程桌面协议(RDP)远程连接到运行 Windows 或 Windows Server 的计算机。默认情况下,远程桌面服务侦听端口 3389。出于安全考虑或特定的网络配置需求,您可能需要更改此默认侦听端口。本文将详细介绍如何使用 PowerShell 或注册表编辑器来修改远程桌面的侦听端口 适用系统 配置远程桌面侦听端口 远程桌面的侦…

    2026年6月29日
    10800
  • 使用ECS安全组工具撤销之前如何进行账号间互通的操作-linux运维-学派吧

    本篇文章给大家带来的内容是关于使用ECS安全组工具撤销之前如何进行账号间互通的操作,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 使用ECS安全组工具撤销之前账号间互通的操作 需要准备的信息: 1、账号名:顾名思义,就是登录控制台的账号 2、ECS对应的安全组:打通了账号内网互通的ECS所在的安全组,可以在控制台查看到,或通过API方法来查…

    服务器运维 2018年11月21日
    2.1K00
  • Linux中关于别名与二进制的使用教程-linux教程

    这篇文章主要给大家介绍了关于Linux中别名与二进制的使用方法,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。 本文介绍的是关于Linux中别名与二进制使用的相关内容,分享出来给大家参考,下面来看看详细的介绍: 二进制 一般二进制这个名词听上去高深莫测,然而当你了解它之后其实并不复杂,在计算机里处理数据一般都是由二进制处理。…

    2019年1月1日
    2.2K00

发表回复

登录后才能评论
联系我们

联系我们

18838889666

在线咨询: QQ交谈

邮件:xinyun@88.com

工作时间:周一至周五,9:30-18:30,节假日休息

添加微信
添加微信
分享本页
返回顶部