Skip to main content

Test Disk Performance

To fully test the performance of cloud server volumes (read/write IOPS and bandwidth), use the fio utility. You can use test files for testing — prepared text files with test settings.

  1. Install the fio utility.

  2. Prepare the volume for testing.

  3. Test performance.

You can compare the test results with limits for network volumes and local disks.

1. Install the fio utility

  1. Connect to the server.

  2. Install the fio utility:

    sudo apt update
    sudo apt install fio

2. Prepare the disk for testing

carefully

Do not use a disk that contains any information for testing—all data on the disk will be destroyed during preparation for testing.

You can use a separate file on the disk for tests, but the result may not be representative, especially if you are using the root partition.

To eliminate the impact of services and file system performance on the test result, we recommend that you create an empty network volume and fill it with data.

  1. Create an empty volume.

  2. Attach the volume to the cloud server.

  3. View the name of the empty disk:

    lsblk

    A list of cloud server disks will appear in the response. Copy the name of the empty disk.

  4. Fill the empty disk with data:

    dd if=/dev/urandom of=/dev/<sdX> bs=4M

    Specify <sdX> — the name of the empty volume that you copied in step 3.

3. Test performance

You can use:

Test IOPS

  1. Open the CLI.

  2. Create a test file in the nano text editor:

    nano write.ini
  3. Add the following content to the test file:

    [writetest]
    size=2000M
    blocksize=4k
    filename=/dev/sdb
    rw=randwrite
    direct=1
    buffered=0
    ioengine=libaio
    iodepth=32

    Where:

    • size — total size of the file for testing;
    • blocksize — size of a single data block for testing;
    • filename — path to the file to be used for testing. The example above shows a test with writing to a disk with the parameter filename=/dev/sdb;
    • iodepth — number of threads.
  4. Exit the nano text editor and save the changes: press Ctrl+X, and then Y+Enter.

  5. Run the test:

    fio write.ini

    Look for the IOPS value in the test output. Example output:

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

Test bandwidth

  1. Open the CLI.

  2. Create a test file in the nano text editor:

    nano write.ini
  3. Add the following content to the file:

    [writetest]
    size=2000M
    blocksize=4M
    filename=/dev/sdb
    rw=write
    direct=1
    buffered=0
    ioengine=libaio
    iodepth=32

    Where:

    • size — total size of the test file;
    • blocksize — size of a single block with which the read or write operation is performed;
    • filename — file for writing or reading. The examples below show tests with writing to a disk with the parameter filename=/dev/sdb — writing will also destroy data and the file system on the disk, if any;
    • iodepth — number of threads.
  4. Exit the nano text editor and save the changes: press Ctrl+X, and then Y+Enter.

  5. Run the test:

    fio write.ini

    Look for the bandwidth (BW) value in the test output. Example output:

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