- Joined
- Feb 8, 2005
- Messages
- 13,326
I'm missing something here. Everything I've read tells me that a raidz pool's IOPS = vdevs*single-disk-IOPS. For mirrors, though, it's supposed to be disks*single-disk-IOPS. I just ran a test:
In one window, I started up the following command:
In another window, I fired up a iostat, and watched.
zpool tank has 12 mirrors of 2 disks. 24 total disks.
zpool pool has 45 disks in a single raidz3 configuration.
The only thing I'm really interested in here is writes, so that's all I tested. I expected to see the raidz3 cap out at ~100IOPS. Instead, I saw writes of over 10K. By contrast, I expected the mirrored pool to cap out at 2.4K IOPS. Instead, it hit 7.5K. So what's going on? Is my testing methodology flawed? Am I just not interpreting the results correctly? What?
In one window, I started up the following command:
Code:
time dd bs=1048576 count=102400 if=/dev/zero of=/pool/100gb.file
In another window, I fired up a iostat, and watched.
zpool tank has 12 mirrors of 2 disks. 24 total disks.
Code:
zpool iostat -v tank 5|egrep -v 'mirror|c11'
capacity operations bandwidth
pool alloc free read write read write
------------ ----- ----- ----- ----- ----- -----
tank 50.4G 32.6T 0 7.51K 0 943M
------------ ----- ----- ----- ----- ----- -----
zpool pool has 45 disks in a single raidz3 configuration.
Code:
zpool iostat -v pool 5|egrep -v 'raidz3|c11'
capacity operations bandwidth
pool alloc free read write read write
------------ ----- ----- ----- ----- ----- -----
pool 10.9T 70.6T 0 10.2K 0 1.24G
------------ ----- ----- ----- ----- ----- -----
The only thing I'm really interested in here is writes, so that's all I tested. I expected to see the raidz3 cap out at ~100IOPS. Instead, I saw writes of over 10K. By contrast, I expected the mirrored pool to cap out at 2.4K IOPS. Instead, it hit 7.5K. So what's going on? Is my testing methodology flawed? Am I just not interpreting the results correctly? What?