在 systemd 中,可以通过以下方式来配置服务的 CPU 和内存使用量:
1. CPU 资源限制:可以使用 systemd 的 CPUQuota、CPUShares 和 CPUWeight 属性来限制服务的 CPU 使用量。
CPUQuota :指定一个百分比值,用于限制服务的 CPU 使用时间。例如,设置为200%,表示服务可以使用的 CPU 时间为两个CPU的总时间。
CPUShares :指定一个相对权重值,用于控制服务在 CPU 分配上的优先级。权重越高,服务获得的 CPU 时间越多。
CPUWeight :类似于CPUShares,但是使用更细粒度的权重控制,范围在 1-10000 之间,默认为 100。
通过修改服务的 systemd 配置文件或单元文件(通常位于 /etc/systemd/system/ 或 /usr/lib/systemd/system/ 目录下),找到 [Service] 部分,并添加或修改上述属性。
例如,将 CPUQuota 设置为50%:
[Service] CPUQuota=50%
2. 内存资源限制:可以使用 systemd 的 MemoryLimit 属性来限制服务的内存使用量。
MemoryLimit :指定服务的内存使用上限。可以使用字节(如 100M、1G)或百分比(如 50%)表示。
同样,编辑服务的 systemd 配置文件或单元文件,找到 [Service] 部分,并添加或修改 MemoryLimit 属性。
例如,将 MemoryLimit 设置为1GB:
[Service] MemoryLimit=1G
3. 重新加载 systemd 配置文件:在对服务的 systemd 配置文件进行更改后,需要使用以下命令重新加载 systemd 配置:
sudo systemctl daemon-reload
这样 systemd 将会重新加载配置文件并应用更改。
4. 重启服务:在应用了上述更改后,需要重新启动服务以使其生效:
sudo systemctl restart <service-name>
将 替换为您想要重启的服务的名称。
请注意,在设置资源限制时,确保不会过度限制服务的资源,以免影响其正常运行。此外,还可以了解和使用 cgroups(控制组)来更细粒度地控制服务的资源使用。
5. 通过ps命令可以参考服务对应进程的cpu和内存占用情况
ps -p <service pid> -o command,rss,%cpu