对容器磁盘读写进行控制

关键词

--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

评论




正在载入...
PoweredHexo
HostedAliyun
DNSAliyun
ThemeVolantis
UV
PV
BY-NC-SA 4.0