【访问控制】cgroup限制磁盘读写

一、前言

参考链接:
Cgroup - Linux的IO资源隔离
用 cgroups 管理进程磁盘 io

二、blkio配置

blkio是cgroup中的一个子系统,可以用于限制及监控磁盘读写io
blkio控制子系统可以限制进程读写的 IOPS 和吞吐量,但它只能对 Direct I/O 的文件读写进行限速,对 Buffered I/O 的文件读写无法限制
Buffered I/O 指会经过 PageCache 然后再写入到存储设备中。这里面的 Buffered 的含义跟内存中 buffer cache 不同,这里的 Buffered 含义相当于内存中的buffer cache+page cache。

1、限制磁盘读写io

blkio涉及限制磁盘读写io的配置文件主要有以下几个,通用echo指定磁盘设备号及数值实现限制磁盘读写io

root@node197:~# ll /sys/fs/cgroup/blkio/
-rw-r--r--   1 root root   0 Mar  4 03:00 blkio.throttle.read_bps_device
-rw-r--r--   1 root root   0 Mar  4 03:00 blkio.throttle.read_iops_device
-rw-r--r--   1 root root   0 Mar  4 06:21 blkio.throttle.write_bps_device
-rw-r--r--   1 root root   0 Mar  4 03:00 blkio.throttle.write_iops_device
通用格式
echo "<disk-number> <io-value>"  > /sys/fs/cgroup/blkio/<io-type>
  • disk-number:指定需要限制的磁盘编号,可通过ll /dev/block/ | grep sdb查看对应磁盘编号,如8:16
  • io-value:指定需要限制的io数值(数值为0表示不限制),当指定的文件名称为blkio.throttle.write_bps_device,则表示限制写入带宽,单位为B/s
  • io-type:指定需要限制的io类型
  • blkio.throttle.write_bps_device:磁盘写入带宽限制
  • blkio.throttle.write_iops_device:磁盘写入IOPS限制
  • blkio.throttle.read_bps_device:磁盘读取带宽限制
  • blkio.throttle.read_iops_device:磁盘读取IOPS限制
参考示例
  • 查看sdb磁盘对应编号为8:16
[root@node189 ~]# ll /dev/block/ | grep sdb
lrwxrwxrwx 1 root root 6 Mar  4 14:29 8:16 -> ../sdb
  • 限制sdb磁盘写入带宽为1MB/s
[root@node189 ~]# echo "8:16 1048576" >> /sys/fs/cgroup/blkio/blkio.throttle.write_bps_device
  • 指定directio测试sdb磁盘写入性能,当前成功限制为1MB/s
[root@node189 ~]# cat /sys/fs/cgroup/blkio/blkio.throttle.write_bps_device
8:16 1048576
[root@node189 ~]# dd if=/dev/zero of=/dev/sdb bs=1M count=1000 oflag=direct
^C64+0 records in
64+0 records out
67108864 bytes (67 MB) copied, 64.0199 s, 1.0 MB/s
  • 解除sdb磁盘写入限制
[root@node189 ~]# echo "8:16 0" >> /sys/fs/cgroup/blkio/blkio.throttle.write_bps_device
[root@node189 ~]# cat /sys/fs/cgroup/blkio/blkio.throttle.write_bps_device
[root@node189 ~]# dd if=/dev/zero of=/dev/sdb bs=1M count=1000 oflag=direct
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 21.9032 s, 47.9 MB/s
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值