Red Hat Training

A Red Hat training course is available for RHEL 8

25.5. 使用单元文件配置内存资源控制设置

每个持久性单元都由 systemd 系统和服务管理器监管,并在 /usr/lib/systemd/system/ 目录中有一个单元配置文件。要更改永久单元的资源控制设置,可在文本编辑器中手动或从命令行界面修改其单元配置文件。

手动修改单元文件是为进程组设置限制、优先级或控制对硬件资源的访问的一种方式。

流程

  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
  4. 重启系统。
  5. (可选)检查更改是否生效:

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

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

    注意

    memory.limit_in_bytes 文件将内存限制存储为 4096 字节的倍数 - 一个内核页面大小,专用于 AMD64 和 Intel 64。实际的字节数量取决于 CPU 构架。

其它资源