对容器进行磁盘读写速率控制
对容器磁盘读写进行控制
关键词
--blkil-weight:硬盘优先级,谁先使用硬盘
bps/iops:bps是每秒读写的数据量,iops是每秒的io次数
都有利于提升数据读取的速度,要么单次读取数据大,要么读取数据小但是次数多
--device-read-bps:磁盘每秒读取速度
--device-write-bps:磁盘每秒写入速度
--device-read-iops:磁盘每秒io读取速度
--device-write-iops:磁盘每秒io写入速度
控制一
启动一个容器,并限制该容器在磁盘的写入速度为30MB/s
[root@localhost ~]# docker run -it --device-write-bps /dev/sda:30MB centos /bin/bash
使用dd命令测试,发现写入速率为29.9MB/s
[root@34b03090013e /]# time dd if=dev/zero of=test.out bs=1M count=800 oflag=direct
# 测试硬盘性能,读取1M的数据,读取800次
800+0 records in
800+0 records out
838860800 bytes (839 MB) copied, 28.0896 s, 29.9 MB/s
real 0m28.217s
user 0m0.006s
sys 0m1.566s
启动一个没有限制磁盘写入的容器,进行相同的测试,写入速率为1.2GB/s,这是正常的写入速率
[root@localhost ~]# docker run -it centos /bin/bash
[root@54e235363474 /]# time dd if=dev/zero of=test.out bs=1M count=800 oflag=direct
800+0 records in
800+0 records out
838860800 bytes (839 MB) copied, 0.715951 s, 1.2 GB/s
real 0m0.718s
user 0m0.000s
sys 0m0.633s
控制二
创建并允许一个容器,使它对硬盘的每秒读写速度不超过100MB
[root@localhost ~]# docker run -it --device-read-bps /dev/sda:100MB --device-write-bps /dev/sda:100MB centos /bin/bash
[root@5e5f92eb145e /]# time dd if=/dev/zero of=test.out bs=1M count=800 oflag=direct
800+0 records in
800+0 records out
838860800 bytes (839 MB) copied, 7.9597 s, 105 MB/s
real 0m7.963s
user 0m0.005s
sys 0m1.966s