33.9. 使用 systemd 单元文件为应用程序设置限制
systemd
服务管理器监督每个现有或正在运行的单元,并为它们创建控制组。该单元在 /usr/lib/systemd/system/
目录中有配置文件。
您可以手动将单元文件修改为:
- 设置限制。
- 优先顺序。
- 控制对进程组的硬件资源的访问。
先决条件
-
有
root
权限。
流程
编辑
/usr/lib/systemd/system/example.service
文件,来限制服务的内存使用:… [Service] MemoryMax=1500K …
配置限制控制组中的进程不能超过的最大内存。
example.service
服务是此类控制组群的一部分,它有一定的限制。使用后缀 K、M、G 或 T 将 Kilobyte、Megabyte、Gigabyte 或 Terabyte 作为一个测量单位。重新载入所有单元配置文件:
# systemctl daemon-reload
重启服务:
# systemctl restart example.service
验证
检查更改是否生效:
# cat /sys/fs/cgroup/system.slice/example.service/memory.max 1536000
示例输出显示,内存消耗会限制在大约 1,500 KB。
其他资源
- 了解 cgroups
- 在 Red Hat Enterprise Linux 中使用 systemctl 管理系统服务
-
您系统上的
systemd.resource-control (5)
,systemd.exec (5)
和cgroups (7)
手册页