首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我无法让cgroup blkio节流子cgroup中进程的iops。

我无法让cgroup blkio节流子cgroup中进程的iops。
EN

Server Fault用户
提问于 2017-04-05 17:59:36
回答 2查看 1.7K关注 0票数 2

我无法让cgroup blkio节流子组中进程的iops。我使用的是CentOS 7,3.10.0-229.我创建了cgroup /sys/fs/cgroup/blkio/user.片/test1 1,然后执行

代码语言:javascript
复制
echo 8:32 10 > /sys/fs/cgroup/blkio/user.slice/test1/blkio.throttle.read_iops_device

write_iops_device也是如此。8:32对应于/dev/sdc的HDD。然后,我使用压力-ng在/srv/hdd-c上读取和写入驱动器。

代码语言:javascript
复制
cgexec -g blkio:user.slice/test1 stress-ng --temp-path /srv/hdd-c --hdd 15 -t 180

代码语言:javascript
复制
cgexec -g blkio:user.slice/test1 stress-ng --temp-path /srv/hdd-c --readahead 15 -t 180

我确认了启动的30个进程是在blkio:user.片/test1 1组中使用ps eo pid,user,args,cgroup运行的。

当我执行iostat 5时,sdc的tps数量是400到600,这与我在test1 cgroup之外运行它们时相同。如果我执行echo 8:32 10 > /sys/fs/cgroup/blkio/user.slice/blkio.throttle.{read|write}_iops_device并在user.sliceuser.slice/test1 cgroup中运行它们,则得到相同的结果。但是,如果我使用echo 8:32 10 > /sys/fs/cgroup/blkio/blkio.throttle.{read|write}_iops_device在blkio的根处节流,然后运行压力-ng进程,则iostat 5显示sdc的tps为10-11。

blkio节流只在根级工作吗?手册页似乎并没有说明这一点。

EN

回答 2

Server Fault用户

回答已采纳

发布于 2017-04-17 16:24:20

因此,我从这个问题的答案中学到的问题是,内核缓冲绕过了blkio系统。使用没有缓冲和指向的fio,我可以使用echo 8:32 10 > /sys/fs/cgroup/blkio/user.slice/blkio.throttle.{read|write}_iops_device将iops节流到设备上,达到每秒10次。

票数 2
EN

Server Fault用户

发布于 2019-08-14 14:18:59

我得到了和你一样的结果,但发现如果我用

Blkio.throttle.{读-写}_bps_device

这将限制设备被用作文件系统时的吞吐量。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/842833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档