为什么 systemd CPUQuota 设置在任何情况下都不可见列表?

为什么 systemd CPUQuota 设置在任何情况下都不可见列表?

如果我显示 clamav systemd 服务的设置,它们不会显示 CPUQuota 设置。它们仅显示 CPUQuotaPerSecUSec 设置。

._. systemctl show clamav* --all | grep CPUQuota
CPUQuotaPerSecUSec=infinity
CPUQuotaPeriodUSec=infinity
CPUQuotaPerSecUSec=infinity
CPUQuotaPeriodUSec=infinity

--all显示可能在输出中遗漏的空设置)。

然而:

systemctl show clamav* --property=CPUQuota

...产生空白输出。

事实上,没有任何 systemd 服务设置了 CPUQuota,甚至在其列表中根本没有出现,您可以运行以下命令看到:

._. for u in $(systemctl list-units --type service --plain --quiet | awk '{ print $1 }'); do systemctl show "$u" | grep CPUQ; done
CPUQuotaPerSecUSec=infinity
CPUQuotaPeriodUSec=infinity
CPUQuotaPerSecUSec=infinity
...

有关控制 systemd 进程的建议建议设置 CPUQuota 设置。此设置确实列在 systemd.resource-control 手册页中。手册页中说CPUQuotaPerSecUSecCPUQuotaPerPeriodUSec设置了 CPUQuota 的参数。

但为什么即使有某些默认值,服务列表中似乎也没有设置它?设置它的选项是否已被弃用?

答案1

CPUQuota 在命令中列出systemctl showCPUQuotaPerSecUSecUSec表示微秒,但以毫秒显示)。10%显示为100毫秒。

相关内容