systemd 限制应用资源使用率(待验证)

 

systemctl set-property app-agent MemoryLimit=200M CPUQuota=30%
systemctl daemon-reload
systemctl restart app-agent

systemd unit file里支持的资源隔离配置项,如常见的:

CPUQuota=value
该参数表示服务可以获取的最大CPU时间,value为百分数形式,高于100%表示可使用1核以上的CPU。与cgroup cpu控制器cpu.cfs_quota_us配置项对应。

MemoryLimit=value
该参数表示服务可以使用的最大内存量,value可以使用K, M, G, T等后缀表示值的大小。与cgroup memory控制器memory.limit_in_bytes配置项对应。

 

(可选)使用 --runtime 选项。如果使用此选项,下一次重引导后已设置的限制不会保留。

临时配置示例:systemctl set-property --runtime example.service MemoryLimit=200M 

命令会立即为 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 构架。

 

 

统一控制组层次结构

以下参数仅当使用了统一控制组层次结构时此设置才可用(),并会禁用 MemoryLimit=。要启用统一控制组层次结构,请将 systemd.unified_cgroup_hierarchy=1 作为内核命令行参数追加到 GRUB 2 引导加载程序

SLES 15 SP3 | 管理指南 | 引导加载程序 GRUB 2 (suse.com)

 

posted @ 2024-07-11 14:19  咿呀哒喏  阅读(0)  评论(0编辑  收藏  举报