目次

31 ZFS IOPS limit

ZFSは、zpoolに対してはcgroupが効かない

ZFSでIOPS limitを利用するには、ZVOLで利用する必要があります。

ZPOOLに制限かけてみる

ZPOOLのディスクに制限をかけても効かない

# zpool status
  pool: pool01
 state: ONLINE
  scan: none requested
config:

	NAME        STATE     READ WRITE CKSUM
	pool01      ONLINE       0     0     0
	  rbd1      ONLINE       0     0     0

# lsblk | grep rbd1
rbd1              251:16   0     2T  0 disk

cgcreate -g blkio:/DiskIO_Group
cgset -r blkio.throttle.write_iops_device="251:16 10" DiskIO_Group


# dd if=/dev/zero of=BBB bs=512 count=100 oflag=direct
100+0 records in
100+0 records out
51200 bytes (51 kB) copied, 0.000876598 s, 58.4 MB/s

ZVOLで制限をかけると効く

zfs create -V 20G pool01/zvol01
mkfs.xfs /dev/zvol/pool01/zvol01
mount /dev/zvol/pool01/zvol01 /mnt/

# lsblk| grep zd
zd0               230:0    0    10G  0 disk  /mnt

cgset -r blkio.throttle.write_iops_device="230:0 10" DiskIO_Group
# dd if=/dev/zero of=BBB bs=512 count=100 oflag=direct
100+0 records in
100+0 records out
51200 bytes (51 kB) copied, 10.0009 s, 5.1 kB/s


cgset -r blkio.throttle.write_iops_device="230:0 100" DiskIO_Group
# dd if=/dev/zero of=BBB bs=512 count=1000 oflag=direct
1000+0 records in
1000+0 records out
512000 bytes (512 kB) copied, 9.91114 s, 51.7 kB/s