25.4. 在命令行中配置内存资源控制设置
在命令行中执行命令是为进程组设置限制、优先级或控制对硬件资源的访问的一种方式。
流程
要限制服务的内存用量,请运行以下命令:
systemctl set-property example.service MemoryMax=1500K
# systemctl set-property example.service MemoryMax=1500KCopy to Clipboard Copied! Toggle word wrap Toggle overflow 命令会立即将 1,500 KB 的内存限值分配给
example.service服务所属的控制组中执行的进程。此配置变体中的MemoryMax参数在/etc/systemd/system.control/example.service.d/50-MemoryMax.conf文件中定义,并控制/sys/fs/cgroup/memory/system.slice/example.service/memory.limit_in_bytes文件的值。另外,要临时限制服务的内存用量,请运行:
systemctl set-property --runtime example.service MemoryMax=1500K
# systemctl set-property --runtime example.service MemoryMax=1500KCopy to Clipboard Copied! Toggle word wrap Toggle overflow 命令会立即为
example.service服务分配内存限值。MemoryMax参数被定义,直到/run/systemd/system.control/example.service.d/50-MemoryMax.conf文件中的下一个重启为止。重启后,整个/run/systemd/system.control/目录和MemoryMax会被删除。
50-MemoryMax.conf 文件存储内存限制,为 4096 字节的倍数 - 特定于 AMD64 和 Intel 64 的内核页大小。实际的字节数量取决于 CPU 构架。