CPFS智算版性能测试

更新时间:
复制为 MD 格式

本文介绍如何在Linux系统中使用 FIO 工具测试 CPFS 智算版文件系统的吞吐量和 IOPS 性能。

前提条件

已创建 CPFS 智算版文件系统,并在创建灵骏GPU服务器时关联该文件系统。

背景信息

推荐使用FIO工具测试CPFS 智算版文件系统性能,不同工具测试的CPFS智算版文件系统性能会有差异,难以反映真实性能。本文示例的性能参数,均为Linux系统下采用FIO工具的测试结果,以此作为CPFS智算版文件系统的产品规格参考。

产品规格提供的数据仅为理论值(阿里云实验室测试环境的参考值),实际数据以您的操作环境为准,测试环境的差异可能导致性能数据有一定偏差。IO大小、并发度、存储侧负载、读写混合的比例等因素会影响测试结果。

操作步骤

  1. 登录灵骏 GPU 服务器。

  2. 安装FIO测试工具。如果已安装,请跳过此步骤,直接运行性能测试命令。

    操作系统

    安装命令

    CentOS

    sudo yum install fio

    Redhat

    sudo yum install fio

    Alibaba Cloud Linux

    sudo yum install fio

    Ubuntu

    依次执行以下安装命令:
    a. sudo apt-get update
    b. sudo apt-get install fio

    Debian

    依次执行以下安装命令:
    a. sudo apt-get update
    b. sudo apt-get install fio

  3. 运行性能测试命令。

    其中/cpfs-test/是挂载CPFS 智算版文件系统的目录,请根据实际挂载路径替换。

    • 4K随机读IOPS

      fio -numjobs=64 -iodepth=4 -ioengine=libaio -direct=1 -rw=randread -bs=4K --group_reporting -size=1G -time_based -runtime=180 -name=4depth_64file_4k_direct_randread_iops -directory=/cpfs-test/
    • 4K随机写IOPS

      fio -numjobs=64 -iodepth=4 -ioengine=libaio -direct=1 -rw=randwrite -bs=4K --group_reporting -size=1G -time_based -runtime=180 -name=4depth_64file_4k_direct_randwrite_iops -directory=/cpfs-test/
    • 4M顺序读带宽

      fio -numjobs=128 -iodepth=2 -ioengine=libaio -direct=1 -rw=read -bs=4M --group_reporting -size=1G -time_based -runtime=180 -name=2depth_128file_4M_direct_read_bw -directory=/cpfs-test/
    • 4M顺序写带宽

      fio -numjobs=128 -iodepth=2 -ioengine=libaio -direct=1 -rw=write -bs=4M --group_reporting -size=1G -time_based -runtime=180 -name=2depth_128file_4M_direct_write_bw -directory=/cpfs-test/

FIO参数说明

测试命令中有关FIO各参数含义的说明如下表所示。

参数

说明

direct

表示是否使用direct I/O。默认值:1。

  • 值为1:表示使用direct I/O,忽略I/O缓存,数据直写。

  • 值为0:表示不使用direct I/O。

iodepth

表示测试时的IO队列深度。例如-iodepth=4表示FIO控制请求中的I/O最大个数为4。

rw

表示测试时的读写策略。您可以设置为:

  • randwrite:随机写。

  • randread:随机读。

  • read:顺序读。

  • write:顺序写。

  • randrw:混合随机读写。

ioengine

表示测试时FIO选择哪种I/O引擎,通常选择libaio,更符合日常应用模式,更多的选择请查阅FIO官方文档。

bs

表示I/O单元的块大小(block size)。默认值:4 KiB。读取和写入的值可以以read、write格式单独指定,其中任何一个都可以为空以将该值保留为其默认值。

size

表示测试文件大小。

FIO会将指定的文件大小全部读/写完成,然后才停止测试,除非受到其他选项(例如运行时)的限制。如果未指定该参数,FIO将使用给定文件或设备的完整大小。也可以将大小作为1100之间的百分比给出。例如指定size=20%,FIO将使用给定文件或设备完整大小的20%空间。

numjobs

表示测试的并发线程数。本示例IOPS测试为64,带宽测试为128。

runtime

表示测试时间,即FIO运行时长。

如果未指定该参数,则FIO会持续将上述size指定大小的文件,以每次bs值为块大小读/写完。

group_reporting

表示测试结果显示模式。

如果指定该参数,测试结果会汇总每个进程的统计信息,而不是以不同任务来统计信息。

directory

表示待测试的文件系统挂载路径。本示例地址为/cpfs-test/,请您根据实际挂载路径替换。

name

表示测试任务名称,可以随意设定。

有关各参数的更多说明,请参见FIO MAN手册