Modi alternativi per limitare l'utilizzo della CPU:1. Usa il comando taskset.2. Utilizzare i gruppi di controllo.3. Usa la finestra mobile e limita l'utilizzo della CPU usando cpuset.4. Ridurre il numero di thread nell'applicazione. Alcuni calcoli sono richiesti con questo approccio.
Un'altra cosa che potresti provare è eseguire cpulimit
come demone. Non ho provato questo; è solo un'idea.
È nei repository Ubuntu:
sudo apt install cpulimit
Usa systemd se vuoi. Questo dovrebbe limitare tutti istanze di dd al 20% della CPU.
[Unit]
Description=dd CPU Limiter
[Service]
ExecStart=/usr/bin/cpulimit -e dd -l 20
[Install]
WantedBy=multi-user.target
fonte
Mi sono imbattuto accidentalmente in un'altra risposta valida fornita su https://unix.stackexchange.com/questions/213903/linux-cgroups-limit-cpu-usage-in-absolute-values-which-do-not-depend-on-cpu -spe
Se desideri un limite rigido alla larghezza di banda della CPU, puoi utilizzare cpu.cfs_quota_us e cpu.cfs_period_us. Dai documenti CFS del kernel:
La larghezza di banda consentita per un gruppo viene specificata utilizzando una quota e un periodo. All'interno di ogni dato "periodo" (microsecondi), un gruppo può consumare solo fino a "quota" microsecondi di tempo della CPU. Quando il consumo di larghezza di banda della CPU di un gruppo supera questo limite (per quel periodo), le attività appartenenti alla sua gerarchia verranno limitate e non potranno essere eseguite nuovamente fino al periodo successivo.