it-swarm.com.de

Kann ich die CPU-Auslastung einer einzelnen Anwendung begrenzen?

Gibt es eine Möglichkeit, ClamScan davon abzuhalten, meine Server-CPU zu fressen?

16
Pitto

Nur als Alternative zu cpulimit:

Sie können den Clamscan mit dem Nice-Befehl starten, z.

Nice -n 19 clamscan.

Siehe man Nice für Details.

Es begrenzt NICHT die CPU, aber es verringert die Priorität des Prozesses.

Es gibt auch renice, um die Priorität von laufenden Prozessen zu ändern.

16
Clausi

Installieren Sie cpulimit

Sudo apt-get install cpulimit

Es bietet verschiedene Methoden zur Begrenzung der CPU-Auslastung eines Prozesses foo mit beispielsweise 20%.

  • Mit seinem Prozessnamen: Sudo cpulimit -e foo -l 20.

  • Durch seinen absoluten Pfadnamen: Sudo cpulimit -P /usr/bin/foo -l 20

  • Durch seine PID:

    1. Suchen Sie die PID des Prozesses: pidof foo. (Sagen wir, es gibt 1881 aus)
    2. Sudo cpulimit -p 1881 -l 20
19
Sid

Dies würde ein Kommentar zu Clausis Antwort sein (die meiner Meinung nach aus Sicht der Systemadministration die "richtigste" ist), aber sie ist zu groß geworden, um in das Kommentarfeld zu passen.

  • Clamscan hat eine festgelegte Menge an Arbeit, die auf eine bestimmte Geschwindigkeit begrenzt ist, was bedeutet, dass es nur länger dauern wird. Es wird die CPU länger im Streit halten.

  • Lassen Sie es so schnell wie möglich laufen, damit Sie Ihre CPU voll auslasten können. "Schön" zu machen bedeutet, dass andere Prozesse ihre Arbeit vor sich selbst erledigen können. Das heißt, wenn es viele andere geschäftige Prozesse gibt, wird es eine lange Zeit dauern, um seine eigene Arbeit zu erledigen, aber wenn nichts vorhanden ist, wird es nur die Arbeitslast durchgehen.

4
Oli

Wenn Sie clamd mit systemd ausführen, können Sie die Option CPUQuota verwenden.

Bearbeiten Sie /lib/systemd/system/clamav-daemon.service, um diese Zeile in den Abschnitt [Service] aufzunehmen:

CPUQuota=20%

Starten Sie dann den Dienst neu

Sudo systemctl daemon-reload
Sudo systemctl reload-or-restart clamav-daemon
3
Keith
1
lukasz