Guidelines when using IOmeter to measure disk performance

Iometer is an I/O subsystem measurement and characterization tool for single and clustered systems. It was originally developed by the Intel Corporation and in 2001 it was given to the Open Source Development Lab (OSDL). Since the moment of birth it gained in popularity and basically every IT guy has used it at least once.

IOmeter is a very powerfull tool, but if it’s inproperly used it will give you some distorted results. Therefore it’s advised to follow these guidelines:

  1. If possible, perform the tests on a raw volume (or a volume not formatted with a filesystem).
  2. Check the number of processors in the system and define the worker processes accordingly (1 worker per logical processor).
  3. Verify the amount of RAM in the server and create the maximum disk size accordingly. As a general guideline I use 10% of the maximum disk size equals the memory in the server.
  4. Perform the test for at least 30 minutes.
  5. Depending on the type of data (fileservices, database and read/write access) a specific Access Specifications profile needs to be used. As a best practice I run the tests more than once with different profiles. (100% random 50/50RW, 100% random 25/75RW & 100% random 75/25RW). In my case I followed the guidelines as outlined in the CommVault IOmeter procedure. Please refer to the documentation of the software to perform the performance tests.
  6. Some people say to change the “Align I/Os on” value according to the optimal value for the RAID controller. But I rarely touch this value.

To identify the effect on inproper configuration, I ran two performance tests with different configuration:

Gear:

  • Server: HP Proliant DL380p gen8
  • Processors: 2 x E5-2667v2 (32 logical processors)
  • Operating System: Windows 2012 R2 Std
  • Memory: 96GB
  • RAID controller: HP SmartArray P420i with 2GB FBWC
  • Disks: 600GB SATA SSD

Test 1:

  • RAID level: RAID-5 (2+1)
  • Blocksize: 4k
  • Access: 100%
  • Random: 100%
  • Read/Write ratio: 50/50
  • # worker processes: 8
  • Maximum disksize: default value (0)
  • Align I/O’s: default (512 bytes)
  • Results:
    • Total I/Os per second: 14.891 IOPS
    • Total MBs per second: 58 MB/sec
    • Average I/O Response Time (ms): 0,5 ms
    • Maximum I/O Response Time (ms): 387 ms
    • %CPU Utilization (total): 2.26%

Test 2:

  • RAID level: RAID-5 (2+1)
  • Blocksize: 4k
  • Access: 100%
  • Random: 100%
  • Read/Write ratio: 50/50
  • # worker processes: 32
  • Maximum disksize: 2.013.265.920 sectors
  • Align I/O’s: default (512 bytes)
  • Results:
    • Total I/Os per second: 4.734 IOPS
    • Total MBs per second: 9.25 MB/sec
    • Average I/O Response Time (ms): 0,21 ms
    • Maximum I/O Response Time (ms): 248 ms
    • %CPU Utilization (total): 1,14%

IOmeterTest

Leave a Reply