实践概述
天翼云新一代XSSD云硬盘最大IOPS可达100万,本文介绍使用FIO工具压测XSSD云硬盘100万IOPS性能的方法。云硬盘的配置和压测条件都会对云硬盘的性能产生重要影响。您可以按照本文的示例配置XSSD云硬盘和测试参数,充分发挥出系统对不同类型IO模型的处理能力,压测出100万IOPS和200 us时延的性能指标。
XSSD云硬盘规格请参见X系列云硬盘。
操作前准备
开始测试前,请登录云主机依次执行以下命令,安装libaio和测试工具FIO。FIO工具的参数说明请参考如何测试云硬盘的性能。
sudo yum install libaio -y
sudo yum install libaio-devel -y
sudo yum install fio –y
操作步骤
本文分为三个步骤:创建并配置XSSD-2云硬盘、挂载和初始化云硬盘、压测云硬盘。
步骤一:创建并配置XSSD-2云硬盘
- 登录控制中心,单击“存储>云硬盘”,进入云硬盘主页面。
- 单击“创建云硬盘”,进入云硬盘创建页面。
- 在云硬盘创建页面,选择磁盘类型为XSSD-2,容量选择2000GB及以上。
- 勾选“启用IOPS”,并按提示将预配置IOPS配到最大值。配置完成之后,如下图箭头处提示云硬盘最大的IOPS为1000000,表示配置正确。
- 点击下一步,并完成云硬盘的创建。
步骤二:挂载和初始化云硬盘
进行测试前,请首先完成云硬盘的挂载和初始化,操作请参考挂载云硬盘和初始化云硬盘。
注意
挂载云主机请选择vCPU数量至少为96的c8或m8云主机实例,否则会由于云主机能力的限制,而无法压测出100万IOPS的磁盘性能。
测试磁盘性能时,建议直接测试裸数据盘(如 /dev/nvme0n1),但有可能会破坏磁盘上的文件系统结构,请在测试前提前做好数据备份。
强烈建议您不要将系统盘或者含有重要数据的数据盘作为测试对象。建议您在空白的数据盘上测试性能,避免造成数据丢失。
如测试的是磁盘分区,则登录到测试云主机,执行以下命令,查询待测试的磁盘分区是否已经4KiB对齐。
sudo fdisk -lu
若返回结果中待测试磁盘的Start值能被8整除即是4KiB对齐。下图中的回显表示该磁盘分区已4KiB对齐。
如Start值不能被8整除,则表示未4KiB对齐,那么请删除原有分区后再继续测试,重新按照4KiB对齐选择初始磁柱编号。
步骤三:压测云硬盘
以下为压测XSSD云硬盘性能的测试命令。
说明以下命令中,filename参数指定的设备名为/dev/test_device,请您根据实际情况替换为磁盘设备名称(如/dev/nvme0n1),或文件地址(如/opt/fiotest/fiotest.txt)。
-
测试云硬盘的随机写IOPS
fio -direct=1 -numjobs=32 -iodepth=32 -rw=randwrite -ioengine=libaio -bs=4k -size=100% -runtime=600 -time_based -group_reporting -filename=/dev/test_device -name=RandWrite_Testing
测试结果如图所示:
-
测试云硬盘的随机读IOPS
fio -direct=1 -iodepth=32 -rw=randread -ioengine=libaio -bs=4k -size=1G -numjobs=4 -runtime=1000 -group_reporting -filename=/dev/test_device -name=RandRead_Testing
测试结果如图所示:
-
测试云硬盘的随机写时延
fio -direct=1 -numjobs=1 -iodepth=1 -rw=randwrite -ioengine=libaio -bs=4k -size=100% -runtime=600 -time_based -group_reporting -filename=/dev/test_device -name=RandWrite_Latency_Testing
测试结果如图所示:
-
测试云硬盘的随机读时延
fio -direct=1 -numjobs=1 -iodepth=1 -rw=randwrite -ioengine=libaio -bs=4k -size=100% -runtime=600 -time_based -group_reporting -filename=/dev/test_device -name=RandWrite_Latency_Testing
测试结果如图所示: