Menu Close

16.8. 使用 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
注意

您可以在以下手册页中查看 systemd 的完整配置选项:

  • systemd.resource-control(5)
  • systemd.exec(5)

验证

  1. 检查更改是否生效:

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

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

其他资源