Help Center/ Scalable File Service Turbo/ Best Practices/ Testing SFS Turbo Performance
Updated on 2024-11-05 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. It can be downloaded from the official website or from 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

File System Performance Data

Table 1 lists the performance metrics of SFS Turbo file systems including IOPS and throughput.

Table 1 File system performance data

Parameter

20 MB/s/TiB

40 MB/s/TiB

125 MB/s/TiB

250 MB/s/TiB

500 MB/s/TiB

1,000 MB/s/TiB

Max. capacity

1 PB

1 PB

1 PB

1 PB

1 PB

1 PB

Max. IOPS

250,000

250,000

1 million

1 million

4 million

If you need a higher IOPS, submit a service ticket. The maximum IOPS is 10 million.

4 million

If you need a higher IOPS, submit a service ticket. The maximum IOPS is 10 million.

Max. throughput

8 GB/s

If you need a higher throughput, submit a service ticket. The maximum throughput is 20 Gbit/s.

8 GB/s

If you need a higher throughput, submit a service ticket. The maximum throughput is 20 Gbit/s.

20 GB/s

If you need a higher throughput, submit a service ticket. The maximum throughput is 100 Gbit/s.

20 GB/s

If you need a higher throughput, submit a service ticket. The maximum throughput is 100 Gbit/s.

80 GB/s

If you need a higher throughput, submit a service ticket. The maximum throughput is 200 Gbit/s.

80 GB/s

If you need a higher throughput, submit a service ticket. The maximum throughput is 200 Gbit/s.

Formula used to calculate the IOPS

IOPS = Min. (250,000, 600 x Capacity)

Capacity unit: TB

IOPS = Min. (250,000, 1,200 x Capacity)

Capacity unit: TB

IOPS = Min. (1,000,000, 6,000 x Capacity)

Capacity unit: TB

IOPS = Min. (1,000,000, 12,500 x Capacity)

Capacity unit: TB

IOPS = Min. (4,000,000, 25,000 x Capacity)

Capacity unit: TB

IOPS = Min. (4,000,000, 50,000 x Capacity)

Capacity unit: TB

Common Test Configuration Example

The following estimated values are obtained from the test on a single ECS. You are advised to use multiple ECSs to test the SFS Turbo performance.

In the following examples, the Performance type 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

    Variable /mnt/nfs/test_fio is 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

    Variable /mnt/nfs/test_fio is 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 location of the file to be tested. The location must be specific to the file name. 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 location of the file to be tested. The location must be specific to the file name. 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 location of the file to be tested. The location must be specific to the file name. 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 location of the file to be tested. The location must be specific to the file name. 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

    Variable /mnt/sfs-turbo/test_fio is 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 location of the file to be tested. The location must be specific to the file name. 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 location of the file to be tested. The location must be specific to the file name. 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 location of the file to be tested. The location must be specific to the file name. Set it to the actual file name.

  • fio result: