Help Center/ Scalable File Service/ User Guide/ Other Operations/ Testing SFS Turbo Performance
Updated on 2024-07-29 GMT+08:00

Testing SFS Turbo Performance

Fio is an open-source I/O tester. You can use fio to test the throughput and IOPS of SFS Turbo file systems.

Prerequisites

Fio has been installed on the cloud server. You can download fio from the official website or GitHub.

Note and Description

The test performance depends on the network bandwidth between the client and server, as well as the capacity of the file system.

Installing fio

The following uses a Linux CentOS system as an example:

  1. Download fio.

    yum install fio

  2. Install the libaio engine.

    yum install libaio-devel

  3. Check the fio version.

    fio --version

Common Test Configuration Examples

Test results provided in the following examples are obtained using a single ECS. To reach the expected performance of SFS file systems, use multiple ECSs in the test.

In the following examples, SFS Turbo Performance and cloud servers with the following specifications are used for illustration.

Specifications: General computing-plus | c3.xlarge.4 | 4 vCPUs | 16 GB

Image: CentOS 7.5 64-bit

  • fio command:

    fio --randrepeat=1 --ioengine=libaio --name=test -output=output.log --direct=1 --filename=/mnt/nfs/test_fio --bs=1M --iodepth=128 --size=10240M --readwrite=rw --rwmixwrite=30 --fallocate=none

    /mnt/nfs/test_fio indicates the location of the file to be tested. The location must be specific to the file name, which is the test_fio file in the /mnt/nfs directory in this example. Set it based on the site requirements.

  • fio result:

  • fio command:

    fio --randrepeat=1 --ioengine=libaio --name=test -output=output.log --direct=1 --filename=/mnt/nfs/test_fio --bs=1M --iodepth=128 --size=10240M --readwrite=rw --rwmixwrite=70 --fallocate=none

    /mnt/nfs/test_fio indicates the location of the file to be tested. The location must be specific to the file name, which is the test_fio file in the /mnt/nfs directory in this example. Set it based on the site requirements.

  • fio result:

Sequential read IOPS

  • fio command:

    fio --ioengine=libaio --direct=1 --fallocate=none --time_based=1 --group_reporting=1 --name=iops_fio --directory=/mnt/sfs-turbo/ --rw=read --bs=4k --size=1G --iodepth=128 --runtime=120 --numjobs=10

    Variable /mnt/sfs-turbo/ is the local path where the file to be tested is stored. Set it to the actual file name.

  • fio result:

Random read IOPS

  • fio command:

    fio --ioengine=libaio --direct=1 --fallocate=none --time_based=1 --group_reporting=1 --name=iops_fio --directory=/mnt/sfs-turbo/ --rw=randread --bs=4k --size=1G --iodepth=128 --runtime=120 --numjobs=10

    Variable /mnt/sfs-turbo/ is the local path where the file to be tested is stored. Set it to the actual file name.

  • fio result:

Sequential write IOPS

  • fio command:

    fio --ioengine=libaio --direct=1 --fallocate=none --time_based=1 --group_reporting=1 --name=iops_fio --directory=/mnt/sfs-turbo/ --rw=write --bs=4k --size=1G --iodepth=128 --runtime=120 --numjobs=10

    Variable /mnt/sfs-turbo/ is the local path where the file to be tested is stored. Set it to the actual file name.

  • fio result:

Random write IOPS

  • fio command:

    fio --ioengine=libaio --direct=1 --fallocate=none --time_based=1 --group_reporting=1 --name=iops_fio --directory=/mnt/sfs-turbo/ --rw=randwrite --bs=4k --size=1G --iodepth=128 --runtime=120 --numjobs=10

    Variable /mnt/sfs-turbo/ is the local path where the file to be tested is stored. Set it to the actual file name.

  • fio result:

Sequential read bandwidth

  • fio command:

    fio --randrepeat=1 --ioengine=libaio --name=test -output=output.log --direct=1 --filename=/mnt/sfs-turbo/test_fio --bs=1M --iodepth=128 --size=10240M --readwrite=read --fallocate=none

    /mnt/sfs-turbo/test_fio indicates the location of the file to be tested. The location must be specific to the file name, which is the test_fio file in the /mnt/sfs-turbo directory in this example. Set it based on the site requirements.

  • fio result:

Random read bandwidth

  • fio command:

    fio --ioengine=libaio --direct=1 --fallocate=none --time_based=1 --group_reporting=1 --name=iops_fio --directory=/mnt/sfs-turbo/ --rw=randread --bs=1M --size=10G --iodepth=128 --runtime=120 --numjobs=1

    Variable /mnt/sfs-turbo/ is the local path where the file to be tested is stored. Set it to the actual file name.

  • fio result:

Sequential write bandwidth

  • fio command:

    fio --ioengine=libaio --direct=1 --fallocate=none --time_based=1 --group_reporting=1 --name=iops_fio --directory=/mnt/sfs-turbo/ --rw=write --bs=1M --size=10G --iodepth=128 --runtime=120 --numjobs=1

    Variable /mnt/sfs-turbo/ is the local path where the file to be tested is stored. Set it to the actual file name.

  • fio result:

Random write bandwidth

  • fio command:

    fio --ioengine=libaio --direct=1 --fallocate=none --time_based=1 --group_reporting=1 --name=iops_fio --directory=/mnt/sfs-turbo/ --rw=randwrite --bs=1M --size=10G --iodepth=128 --runtime=120 --numjobs=1

    Variable /mnt/sfs-turbo/ is the local path where the file to be tested is stored. Set it to the actual file name.

  • fio result: