如何测试云硬盘性能

前提条件

您已经创建了待测试的腾讯云硬盘,并将腾讯云硬盘挂载到腾讯云服务器上。

操作须知

由于不同测试工具有性能误差,腾讯云硬盘产品测试工具建议使用FIO。

若使用FIO工具进行裸盘测试,不建议在已创建文件系统的磁盘上测试,因为FIO性能测试裸盘会破坏文件系统。如果需要,请在测试开始前对磁盘数据进行备份,防止造成数据丢失。

本文为Linux系统下采用FIO工具的测试,以此作为腾讯云硬盘产品性能指标参考。Linux系统和Windows系统都推荐使用FIO工具测试腾讯云硬盘性能。

操作步骤

1.连接腾讯云服务器,切换为root用户。

2.安装FIO性能测试工具。

yum install libaio -y

yum install libaio-devel -y

yum install fio -y

3. 确认腾讯云硬盘是否已经4KB对齐。

fdisk -lu

返回的结果中,若Start值能被8整除则是4KB对齐。否则,请完成4KB对齐后再继续性能测试。

Device Boot Start End Id System

/dev/vda1 * 2048 58598521 83 Linux

4. 进入到腾讯云硬盘对应的挂载目录,如/mnt/目录,运行以下命令测试腾讯云硬盘性能。

随机写IOPS

fio -direct=1 -iodepth=128 -rw=randwrite -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=Rand_Write_IOPS_Test

随机读IOPS

fio -direct=1 -iodepth=128 -rw=randread -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=Rand_Read_IOPS_Test

顺序写吞吐量

fio -direct=1 -iodepth=64 -rw=write -ioengine=libaio -bs=1024k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=Write_BW_Test

顺序读吞吐量

fio -direct=1 -iodepth=64 -rw=read -ioengine=libaio -bs=1024k -size=1G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=Read_BW_Test

参数说明

direct

表示数据写是否经过缓存0表示经过缓存1表示不经过缓存

iodepth

表示测试时的每个线程的IO队列深度,即每个线程的IO并发数

rw

表示测试时的IO读写模式read:顺序读write:顺序写randread:随机读randwrite:随机写randrw:混合随机读和写

ioengine

表示fio如何下发IO请求,通常有同步IO和异步IO:

同步IO一次只能发出一个IO请求,等待内核完成后才返回。这样对于单个线程IO队列深度总是小于1,但是可以透过多个线程并发执行来解决。通常会用16~32个线程同时工作把IO队列深度塞满。

异步IO则通常使用libaio这样的方式一次提交一批IO 请求,然后等待一批的完成,减少交互的次数,会更有效率。

bs

表示单次I/O的块文件大小

size

表示测试文件的大小

numjobs

表示测试线程数

runtime

表示测试时长

group_reporting

表示测试结果里汇总每个进程的统计信息,而非以不同job汇总展示信息

filename

表示测试文件的名称

name

表示该测试任务名称,可随意定义

标签