Alternativní způsoby, jak omezit využití procesoru:1. Použijte příkaz taskset.2. Použijte kontrolní skupiny.3. Použijte docker a omezte využití procesoru pomocí cpuset.4. Snižte počet vláken v aplikaci. Tento přístup vyžaduje určité výpočty.
Další věc, kterou můžete zkusit, je spustit cpulimit
jako démon. Toto jsem netestoval; je to jen nápad.
Je to v repozitářích ubuntu:
sudo apt install cpulimit
Pokud chcete, použijte systemd. To by mělo omezit vše instance dd na 20 % CPU.
[Unit]
Description=dd CPU Limiter
[Service]
ExecStart=/usr/bin/cpulimit -e dd -l 20
[Install]
WantedBy=multi-user.target
zdroj
Náhodou jsem narazil na jinou platnou odpověď uvedenou na https://unix.stackexchange.com/questions/213903/linux-cgroups-limit-cpu-usage-in-absolute-values-which-do-not-depend-on-cpu -spe
Pokud chcete pevný limit na šířku pásma CPU, můžete použít cpu.cfs_quota_us a cpu.cfs_period_us. Z dokumentů CFS jádra:
Šířka pásma povolená pro skupinu je určena pomocí kvóty a období. V rámci každé dané „periody“ (mikrosekundy) může skupina spotřebovat pouze „kvótu“ mikrosekund CPU času. Když spotřeba šířky pásma CPU skupiny překročí tento limit (pro dané období), úlohy patřící do její hierarchie budou omezeny a nebudou moci znovu běžet až do dalšího období.