terminal - 使用 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
自动包含在施加的限制中或需要单独控制,如果每次启动相关进程时都需要运行此命令,或者设置是永久的。谢谢!
解决方案
systemd-run 创建一个新范围并在其中启动一个程序。
使用的语法是:systemd-run --scope -p MemoryMax=250M -p MemoryHigh=200M /path/to/program/to/use
推荐阅读
- b-tree - 模块`github.com/google/btree`中的`copyOnWriteContext`是什么意思?
- javascript - 使用 AJAX 在 HTML 下拉列表中显示 python 列表的值
- javascript - JavaScript中的正则表达式模式匹配?
- python - 如何创建实例并将实例添加到 python 中的另一个类
- python - 使用 strptime 的日历周数到日期异常
- php - 如何处理 php 上的选择标签?我想在提交时在表单上设置选项
- php - Laravel Eloquent Query 首先有值而不是列名
- db2 - DB2 中的动态游标变量
- javascript - 我在mySQL数据库中删除一行时出现以下问题,序列号不会更新为连续顺序
- c - 如何使用 librdkafka 发送 json 数据?