CGroup 交互

作者:Zack Brown

CGroups 正在不断发展,部分原因是它们构成了当今许多商业服务的核心。 令人惊奇的是,它们仍然是一个未完成的项目。 隔离和分配系统元素是一项持续的努力,还有许多工作要做。 并且由于安全问题,可能永远无法将虚拟系统呈现为完全独立的系统。 总是需要做出妥协。

最近,Andrey Ryabinin 试图修复他认为 CGroups 处理低内存情况时存在的问题。 在当前的内核中,低内存情况会导致 Linux 从所有 CGroups 中平均回收内存。 但这非但没有做到公平,反而会惩罚那些有效利用内存的 CGroup,奖励那些分配了超出所需内存的 CGroup。

Andrey 的解决方案是在从那些正在大量使用的 CGroup 回收内存之前,先从那些拥有未使用内存的 CGroup 中回收。 这似乎比原来的行为更不公平,因为只会针对某些 CGroup 而不是其他 CGroup。

Andrey 的想法得到了 Rik van Riel 等人的支持。 但并非所有人都如此着迷。 例如,Roman Gushchin 指出,活动内存和未使用内存之间的区别并不像 Andrey 认为的那么清晰。 他们就这个问题争论了很多,因为公平对待的整个问题都悬而未决。 如果 Andrey 的重点是防止 CGroups “玩弄系统” 以确保获得更多内存,那么处理低内存情况的正确方法取决于能够清楚地识别哪些 CGroups 应该被指定回收,哪些应该被排除在外。

与此同时,这种情况可能被视为一个安全问题,绝对需要保护独立的 CGroups 彼此隔离。 如果是这样,那么像 Andrey 的补丁这样的东西就是必要的,而且更多具有安全意识的开发人员会开始对获得精确的细节感兴趣。

注意:如果您在上面被提及并且想要在评论区上方发表回复,请将您的回复文本发送至 ljeditor@linuxjournal.com。

Zack Brown 是 Linux JournalLinux Magazine 的科技记者,并且是前 “Kernel Traffic” 每周通讯和 “Learn Plover” 速记打字教程的作者。 他在 1993 年首次在他的 386 机器上安装了 Slackware Linux,该机器拥有 8 MB 内存,并且他的思想被开源社区永久震撼。 他是 Crumble 纯策略棋盘游戏的发明者,您可以使用几块纸板自己制作。 他还喜欢写小说、尝试动画、改革拉班符号、设计和缝制自己的衣服、学习法语以及与朋友和家人共度时光。

加载 Disqus 评论