Test disk performance
Linux
Windows
To fully test cloud server disk performance (read and write IOPS and throughput), use the fio utility. You can use file tests - prepared text files with test settings - for testing.
Test results can be compared to the limits for network disks and local disks.
1. Install the fio utility
-
Install the
fioutility:sudo apt updatesudo apt install fio
2. Prepare the disk for testing
Do not use a disk that contains any information for testing - all data on the disk will be destroyed in 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 a root partition.
To exclude the influence of services and file system performance on the test result, we recommend creating an empty network disk and filling it with data.
-
Look at the name of the blank disk:
lsblkA list of cloud server disks will appear in the response. Copy the name of an empty disk.
-
Fill the empty disk with data:
dd if=/dev/urandom of=/dev/<sdX> bs=4MSpecify
<sdX>is the name of the blank disk you copied in step 3.
3. Test performance
Can be used for:
- IOPS testing - random write or read in 4KB blocks;
- throughput tests - Random write or read in 4 MB blocks.
Test IOPS
Recording
Reading
-
Open the CLI.
-
Create a test file in the
nanotext editor:nano write.ini -
Add content to the test file:
[writetest]size=2000Mblocksize=4kfilename=/dev/sdbrw=randwritedirect=1buffered=0ioengine=libaioiodepth=32Here:
size- total file size for testing;blocksize- size of one block of data for testing;filename- path to the file to be used for testing. The example above shows a test with writing to disk with the parameterfilename=/dev/sdb;iodepth- number of threads.
-
Exit the
nanotext editor with your changes saved: press Ctrl+X and then Y+Enter. -
Run the test:
fio write.iniIn the output of the test, look at the IOPS value. Example output:
write: IOPS=118, BW=475KiB/s (487kB/s)(2000MiB/4310296msec); 0 zone resets
Test throughput
Recording
Reading
-
Open the CLI.
-
Create a test file in the
nanotext editor:nano write.ini -
Add content to the file:
[writetest]size=2000Mblocksize=4Mfilename=/dev/sdbrw=writedirect=1buffered=0ioengine=libaioiodepth=32Here:
size- total size of the test file;blocksize- the size of one block with which a read or write operation is performed;filename- file to write or read. The examples below show tests with writing to disk with the parameterfilename=/dev/sdb- writing will also destroy data and file system on the disk, if any;iodepth- number of threads.
-
Exit the
nanotext editor with your changes saved: press Ctrl+X and then Y+Enter. -
Run the test:
fio write.iniIn the test output, look at the throughput (BW) value. Example output:
write: IOPS=25, BW=100MiB/s (105MB/s)(2000MiB/19974msec); 0 zone resets