ユーザ用ツール

サイト用ツール


サイドバー

このページの翻訳:



最近の更新



Tag Cloud

01_linux:21_centos7:07_cgroup

07 CentOS cgroupでリソースコントロー

cgroupsのインストール

yum install libcgroup libcgroup-tools

cgroupsの起動設定

/usr/bin/systemctl enable cgconfig
/usr/bin/systemctl enable cgred

QOS

※ディスクIDは、lsblkで確認
下記は/dev/sda(8:0)を100IOPS でlimitをかける場合

[/etc/cgconfig.conf]

group DiskIO_Group  {
    blkio {
        blkio.throttle.read_iops_device = "8:0 100";
        blkio.throttle.write_iops_device = "8:0 100";
    }
}
[/etc/cgrules.conf]
root	blkio	DiskIO_Group

cgconfig.confで複数ディスクへ設定する場合

groupを複数書いておく

[/etc/cgconfig.conf]

group DiskIO_Group  {
    blkio {
        blkio.throttle.read_iops_device = "8:0 100";
        blkio.throttle.write_iops_device = "8:0 100";
    }
}
group DiskIO_Group  {
    blkio {
        blkio.throttle.read_iops_device = "251:0 100";
        blkio.throttle.write_iops_device = "251:0 100";
    }
}

こうするとちゃんと反映される

# cat /sys/fs/cgroup/blkio/DiskIO_Group/blkio.throttle.write_iops_device 
8:0 100
251:0 100

反映

反映にはcgconfigとcgredプロセスを再起動で反映されます。

systemctl restart cgconfig && systemctl restart cgred

確認

4k block , count=1000が10秒ほどかかる。
1000 / 100IOPS = 10s

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

# dd if=/dev/zero of=AAA bs=512 count=1000 oflag=direct
1000+0 records in
1000+0 records out
512000 bytes (512 kB) copied, 9.92528 s, 51.6 kB/s

コマンドラインで実行の場合

CGruleを先に設定しておく

echo "root blkio DiskIO_Group" >>  /etc/cgrules.conf
systemctl restart cgred

グループ作成

cgcreate -g blkio:/DiskIO_Group

設定追加

cgset -r blkio.throttle.write_iops_device="8:0 10" DiskIO_Group

設定確認

cgget blkio.throttle.write_iops_device DiskIO_Group
# cgget -r blkio.throttle.write_iops_device DiskIO_Group
DiskIO_Group:
blkio.throttle.write_iops_device: 8:0 10

下記でも確認できる

# cat /sys/fs/cgroup/blkio/DiskIO_Group/blkio.throttle.write_iops_device
8:0 10

設定削除

cgdelete blkio:/DiskIO_Group
01_linux/21_centos7/07_cgroup.txt · 最終更新: 2021/07/24 17:30 by matsui