22.9. 使用 systemd 单元文件为应用程序设置限制

systemd 服务管理器监督每个现有或正在运行的单元,并为它们创建控制组。该单元在 /usr/lib/systemd/system/ 目录中有配置文件。

您可以手动将单元文件修改为:

  • 设置限制。
  • 优先顺序。
  • 控制对进程组的硬件资源的访问。

先决条件

  • root 权限。

流程

  1. 编辑 /usr/lib/systemd/system/example.service 文件,来限制服务的内存使用:

    …​
    [Service]
    MemoryMax=1500K
    …​

    配置限制控制组中的进程不能超过的最大内存。example.service 服务是此类控制组群的一部分,它有一定的限制。使用后缀 K、M、G 或 T 将 Kilobyte、Megabyte、Gigabyte 或 Terabyte 作为一个测量单位。

  2. 重新载入所有单元配置文件:

    # systemctl daemon-reload
  3. 重启服务:

    # systemctl restart example.service

验证

  1. 检查更改是否生效:

    # cat /sys/fs/cgroup/system.slice/example.service/memory.max
    1536000

    示例输出显示,内存消耗会限制在大约 1,500 KB。

其他资源