【访问控制】cgroup限制磁盘读写
一、前言#
二、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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】