Red Hat Training
A Red Hat training course is available for RHEL 8
25.4. 在命令行中配置内存资源控制设置
在命令行界面中执行命令是针对进程组设置限制、优先级或控制对硬件资源的访问的一种方式。
流程
要限制服务的内存用量,请运行以下命令:
# systemctl set-property example.service MemoryMax=1500K
命令会立即将 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
命令会立即为
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 构架。
其它资源
- 什么是控制组
- 什么是内核资源控制器
-
systemd.resource-control(5)
和cgroups(7)
manual pages - 控制组群中的 systemd 角色