首页 > 解决方案 > 使用 systemd-run 限制多个进程的 CPU 和内存使用的语法?

问题描述

我想使用 Linux 控制组 (cgroups) 来限制多个进程的 CPU 和 RAM 使用。如果进程是Process 1并且Process 2带有子进程Process 2 Sub,这是否是正确的最小命令语法:

sudo systemd-run --scope -p MemoryHigh=200M Process\ 1
                         -p MemoryHigh=200M Process\ 2
                         -p MemoryHigh=200M Process\ 2\ Sub
                         -p MemoryMax=250M Process\ 1
                         -p MemoryMax=250M Process\ 2
                         -p MemoryMax=250M Process\ 2\ Sub
                         -p CPUQuota=10% Process\ 1
                         -p CPUQuota=10% Process\ 2
                         -p CPUQuota=10% Process\ 2\ Sub

我不确定正确的进程 ID(完整路径?进程名称?),选项的“链接”,区分大小写,转义空格,如果子进程(此处:)Process 2 Sub自动包含在施加的限制中或需要单独控制,如果每次启动相关进程时都需要运行此命令,或者设置是永久的。谢谢!

标签: terminalsyntaxresourcessystemdcgroups

解决方案


systemd-run 创建一个新范围并在其中启动一个程序。

使用的语法是:systemd-run --scope -p MemoryMax=250M -p MemoryHigh=200M /path/to/program/to/use


推荐阅读