如何使用官方 systemd 功能为桌面应用程序配置 cgroup 资源限制?

如何使用官方 systemd 功能为桌面应用程序配置 cgroup 资源限制?

我以前习惯cgmanager将进程分开分组cgroups,并根据需要调整每个组的内存和 CPU 限制。但是,现代systemd不希望其他进程干扰,cgroups所以我想我需要配置systemd来做到这一点。(确切地说,Lennart Poettering(systemd 的作者)是这样认为的

我想例如定义以下内容:

  • 指定组desktop并设置最低限度为该组保留的 RAM 为 1 GB,并自动将我的窗口管理器 ( marco) 和面板进程 ( mate-panel) 移动到其中。
  • 指定组browsers并设置最大限度该组的 RAM 为 20 GB,并自动将所有 Firefox、Chrome 和 Opera 进程移动到该组。
  • 限制应该是针对每个用户的:当多个桌面会话正在运行时(通过“切换帐户”操作启动而不注销之前的帐户),每个会话都应该有自己的 cgroup,并具有上述限制。

重要的是,我希望这些进程在执行/usr/bin/marco或时都能进入正确的组/opt/google/chrome/google-chrome。也就是说,即使包装器(systemd-run例如不是简而言之,任何进程都不应被允许逃脱 cgroup 的控制。

cgmanager这个真的很简单。你只需创建一个配置文件,一切都设置好了,而且运行得很好。但是,我一直在寻找文档,却不知道如何单独做同样的事情systemd

相关内容