Skip to main content
Test file storage performance

Test file storage performance

For your information

This is a tutorial with an example of testing file storage performance on a cloud server.

To fully test file storage performance (throughput values and read and write limits in IOPS), use the following utility fio.

  1. Install the fio utility.
  2. Test performance.

Test results can be compared to expected performance, which depends on the file storage type. The values can be viewed in the table File storage limits.

1. Install the fio utility

  1. Connect to the cloud server.

  2. Open the CLI.

  3. Install the utility fio:

    sudo apt update
    sudo apt install fio

2. Test performance

Can be used for:

Test limits in IOPS

  1. Run the test:

    fio \
    --name=test1 \
    --blocksize=4k \
    --rw=randwrite \
    --direct=1 \
    --buffered=0 \
    --ioengine=libaio \
    --iodepth=16 \
    --loops=1000 \
    --runtime=30 \
    --filename=/mnt/nfs/test \
    --size=99G

    Specify:

    • blocksize — the size of one block with which a read or write operation is performed;
    • iodepth — number of streams;
    • filename — file for writing or reading. The examples below show tests with the parameter filename=/mnt/nfs/test — a separate file will be created in the directory with the mounted file storage for testing;
    • size — total size of the test file. To get relevant results, we recommend performing tests on a file storage larger than 100 GB.
  2. In the test output, see the value of the write limit in IOPS (IOPS):

    write: IOPS=118, BW=475KiB/s (487kB/s)(2000MiB/4310296msec); 0 zone resets

Test throughput

  1. Run the test:

    fio \
    --name=test1 \
    --blocksize=4M \
    --rw=randwrite \
    --direct=1 \
    --buffered=0 \
    --ioengine=libaio \
    --iodepth=16 \
    --loops=1000 \
    --runtime=30 \
    --filename=/mnt/nfs/test \
    --size=99G

    Specify:

    • blocksize — the size of one block with which a read or write operation is performed;
    • iodepth — number of streams;
    • filename — file for writing or reading. The examples below show tests with the parameter filename=/mnt/nfs/test — a separate file will be created in the directory with the mounted file storage for testing;
    • size — total size of the test file. To get relevant results, we recommend performing tests on a file storage larger than 100 GB.
  2. In the test output, look at the throughput value (BW):

    write: IOPS=25, BW=100MiB/s (105MB/s)(2000MiB/19974msec); 0 zone resets