GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Verwendung von CPUQuota in systemd

Alternative Möglichkeiten zur Begrenzung der CPU-Auslastung:1. Verwenden Sie den Taskset-Befehl.2. Verwenden Sie Kontrollgruppen.3. Verwenden Sie Docker und begrenzen Sie die CPU-Auslastung mithilfe von cpuset.4. Reduzieren Sie die Anzahl der Threads in der Anwendung. Bei diesem Ansatz sind einige Berechnungen erforderlich.


Eine andere Sache, die Sie versuchen könnten, ist cpulimit auszuführen als Dämon. Ich habe das nicht getestet; es ist nur eine idee.

Es befindet sich in den Ubuntu-Repos:

sudo apt install cpulimit

Verwenden Sie systemd, wenn Sie möchten. Dies sollte alle beschränken Instanzen von dd auf 20 % CPU.

[Unit]
Description=dd CPU Limiter

[Service]
ExecStart=/usr/bin/cpulimit -e dd -l 20

[Install]
WantedBy=multi-user.target

Quelle


Ich bin versehentlich auf eine andere gültige Antwort gestoßen, die auf https://unix.stackexchange.com/questions/213903/linux-cgroups-limit-cpu-usage-in-absolute-values-which-do-not-depend-on-cpu gegeben wurde -spe

Wenn Sie eine feste Begrenzung der CPU-Bandbreite wünschen, können Sie cpu.cfs_quota_us und cpu.cfs_period_us verwenden. Aus der CFS-Dokumentation des Kernels:

Die für eine Gruppe zulässige Bandbreite wird über ein Kontingent und einen Zeitraum angegeben. Innerhalb jeder gegebenen "Periode" (Mikrosekunden) darf eine Gruppe nur bis zu "Quote" Mikrosekunden CPU-Zeit verbrauchen. Wenn der CPU-Bandbreitenverbrauch einer Gruppe dieses Limit (für diesen Zeitraum) überschreitet, werden die Aufgaben, die zu ihrer Hierarchie gehören, gedrosselt und dürfen bis zum nächsten Zeitraum nicht erneut ausgeführt werden.


Linux
  1. So begrenzen Sie die CPU-Auslastung eines Prozesses in Linux

  2. So verwenden Sie den Systemctl-Befehl zum Verwalten von Systemd-Diensten

  3. Wie verwendet Systemd /etc/init.d-Skripte?

  4. Linux – Wie beschränke ich einen Prozess auf einen CPU-Kern in Linux??

  5. Wie bekomme ich den Prozentsatz der Prozessorauslastung mit Bash?

Verwenden Sie systemd-Timer anstelle von Cronjobs

So legen Sie das Docker-Speicher- und CPU-Nutzungslimit fest

So verwenden Sie den ulimit-Linux-Befehl

So verwenden Sie journalctl zum Anzeigen und Bearbeiten von Systemd-Protokollen

Speicherlimit und CPU-Limit im Docker-Container

Richtige Methode zur Verwendung von OnFailure in systemd