Check the IOPS performance

This topic describes how to check the IOPS performance of an SSD. The disk specifications and testing conditions affect the test results. If you configure the testing conditions as described in the following example to fully utilize the performance of a multi-core system with high concurrency, you can achieve very high IOPS values when performing a stress test on the SSD.

Test Conditions

  • Sample Operation: Random read and random write.

  • Image: We recommend using the latest version of the public Linux image provided by VNG Cloud, such as Almalinux9.0 x64, AlmalinuxOS-8.5 x64.

  • Tool: We recommend using FIO.

Operational Notes

Warning:

  • You can obtain accurate test results by testing the disk partition. However, you may destroy the file system structure within the disk partition if you test the partition directly. Before testing the disk, we recommend backing up your data by taking a snapshot of the disk. For more information, see Creating a Snapshot of the Disk.

  • We advise against testing disks that contain the operating system or store important data. To avoid data loss, we recommend using a new drive with no data for testing.

Performance Testing for Concurrent Random Read and Random Write

  1. Create a Server: Create a server with an NVMe Volume drive with 1000 IOPS on the vServer homepage.

  2. Connect to Your Server: For more information, see the Guide to Connecting to a Virtual Server.

  3. Run the following command to install FIO:

sudo yum install -y epel-release && yum install -y fio || ( apt-get update && apt-get install -y fio )
  1. Use the following command to measure SSD performance: This command creates a 4GB file and performs simultaneous read/write operations with a 4KB block size at a 75% read and 25% write ratio (i.e., 3 reads for every 1 write), executing 64 tasks simultaneously. The 3:1 ratio is common and approximates current database formats.

sudo fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=TGS --filename=TGS --bs=4k --iodepth=64 --size=4G --readwrite=randrw --rwmixread=75 --numjobs=8
  1. The following are the results after completing the test with numjobs=1:

It can be seen that the test VPS can simultaneously perform IOPS = 7500 read operations and IOPS = 2506 write operations per second.

Results with numjobs = 8:

It can be seen that the test VPS can run 8 jobs with each job having IOPS = 938 read operations and IOPS = 313 write operations per second.

Performance Testing for Random Read

  1. Use the following command to measure SSD performance: Create a 4GB file, perform reads with full disk performance using a 4KB block size, and execute 64 tasks simultaneously.

sudo fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=TGS --filename=TGS --bs=4k --iodepth=64 --size=4G --readwrite=randread --numjobs=8
  1. Here are the results after completing the test with numjobs = 1:

It can be seen that the test VPS can perform IOPS = 10.0K (10000) read operations per second. Results with numjobs = 8:

It can be seen that the test VPS can run 8 jobs with each job having IOPS = 1254 read operations per second.

Performance Testing for Random Write

  1. Use the following command to measure SSD performance: Create a 4GB file, perform writes with full disk performance using a 4KB block size, and execute 64 tasks simultaneously.

sudo fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=TGS --filename=TGS --bs=4k --iodepth=64 --size=4G --readwrite=randwrite --numjobs=8
  1. Here are the results after completing the test with numjobs = 1:

  1. It can be seen that the test VPS can perform IOPS = 10.0K (10000) write operations per second. Results with numjobs = 8:

Monitor Disk Performance with vMonitor

VNG Cloud Disk Performance Test Results

Last updated