Docker限制容器的Block IO

Block IO指的是磁盘的读写,docker可以通过设置权重以及限制bps和iops的方式控制容器读写磁盘的带宽。
通过命令

docker help run | grep -E ‘bps|IO’

可以查询block IO的选项参数。


image.png

主要参数有:
–blkio-weight:容器默认磁盘IO的加权值,有效值范围为10-1000。
–blkio-weight-device: 针对特定设备的IO加权控制。其格式为DEVICE_NAME:WEIGHT
–device-read-bps:限制此设备上的读速度(bytes per second),单位可以是KB、MB或者GB。
–device-read-iops:通过每秒读IO次数来限制指定设备的读速度。
–device-write-bps :限制此设备上的写速度(bytes per second),单位可以是KB、MB或者GB。
–device-write-iops:通过每秒写IO次数来限制指定设备的写速度。

接下来将介绍每一个命令的具体使用方法。

1、–blkio-weight、–blkio-weight-device
使用以下命令创建容器

docker run -it --rm --blkio-weight 100 centos /bin/bash


image.png

采用docker inspect 命令查看生成的容器的元数据。

image.png

2、–device-write-bps、–device-read-bps
2.1 --device-write-bps
使用以下命令创建容器,并限制容器的写入速度是上限30MB/s

docker run -it --rm --device-write-bps /dev/sda:30MB centos

采用docker inspect命令对容器数据进行查看,发现设置成功。


image.png

在容器内采用dd命令对容器的写入速度进行测试,验证其读写速度在30M左右,其中oflag=direct 指定用 direct IO 方式写文件,这样 --device-write-bps 才能生效。


image.png

如果不采用oflag=direct方式,进行测试,发现速度为2.0GB/s,也间接说明成功限制容器写入速度。


image.png

2.2 --device-read-bps
使用以下命令创建容器,并限制容器的读出数据速度是上限30MB/s

docker run -it --rm --device-read-bps /dev/sda:30MB centos

同样,采用docker inspect命令对容器数据进行查看,发现设置成功。


image.png

在容器内采用dd命令对容器的写入速度进行测试,验证其读写速度在30M左右。首先需要生成读取数据文件test.out。

time dd if=/dev/zero of=test.out bs=1M count=256


image.png

然后再运行dd命令,对容器读取数据速度进行测试,和–device-write-bps类似,iflag=direct是对–device-read-bps的读取速度进行限制。

time dd if=test.out of=/dev/zero bs=1M iflag=direct


image.png

在不加iflag=direct的情况下进行测试,发现速度为7.9GB/s,远远大于30MB/s,从而可以看出成功限制容器读取数据的速度。


image.png

3、–device-write-iops,–device-read-iops
–device-write-iops,–device-read-iops是通过限制容器每秒读取IO的次数来限制容器的读写速度。

3.1 --device-write-iops
使用以下命令创建容器,并限制容器的每秒写入数据次数不超过30次。

docker run -it --rm --device-write-iops /dev/sda:30 centos

同样,采用docker inspect命令对容器数据进行查看,发现设置成功。


image.png

在容器内采用dd命令对容器的写入速度进行测试,写入速度限制到了15.8MB/s。

time dd if=/dev/zero of=test.out bs=1M count=256 oflag=direct


image.png

在不加oflag-direct的时候进行测试,速度为2.4GB/s,说明限制容器写入次数成功。


image.png

3.2 --device-read-iops
使用以下命令创建容器,并限制容器的每秒读取数据次数不超过30次。

docker run -it --rm --device-read-iops /dev/sda:30 centos

同样,采用docker inspect命令对容器数据进行查看,发现设置成功。

image.png

然后在运行dd命令对容器每秒读取io次数进行查看,命令格式通–device-read-bps,接下来将不再进行赘述,直接上图,读取速度为15.8MB/s。


image.png

在不加iflag=direct的情况下进行测试,发现读取速度为9.0GB/s远大于15.8MB/s,说明限制容器读取次数成功。


image.png

————————————————
原文链接:https://blog.csdn.net/weixin_44713619/article/details/105728147

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容