在systemd中使用CPUQuota

Ste*_*015 19 linux cpu fedora limit systemd

我试图为dd命令的CPU使用量设置一个硬限制.我创建了以下单元文件

[Unit]
Description=Virtual Distributed Ethernet

[Service]
ExecStart=/usr/bin/ddcommand
CPUQuota=10%

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

它调用以下简单脚本

#!/bin/sh
dd if=/dev/zero of=/dev/null bs=1024k
Run Code Online (Sandbox Code Playgroud)

正如我在本指南中看到的: http ://www.freedesktop.org/software/systemd/man/systemd.resource-control.html我的dd服务的CPU使用率不应超过10%.但是当我运行system-cgtop命令时,使用率约为70-75%.

我有什么错误的想法,我该如何解决?

PS当我执行时,systemctl show dd我得到有关CPU的以下结果

CPUShares=18446744073709551615
StartupCPUShares=18446744073709551615
CPUQuotaPerSecUSec=100ms
LimitCPU=18446744073709551615
Run Code Online (Sandbox Code Playgroud)

小智 -2

暗示“CPUAccounting=true”所以应该是

[Service]
ExecStart=/usr/bin/ddcommand
CPUAccounting=true
CPUQuota=10%
Run Code Online (Sandbox Code Playgroud)

  • *隐含* 意味着“CPUAccounting=true”是隐式设置的,不需要显式设置。 (6认同)