Beschränken Sie CPU / RAM in allen Prozessen für Debian

1051
heailraiser

Wann immer ich CPU / RAM-intensive Aufgaben ausführte, kann ich meinen Computer nicht verwenden, er friert ein, bis die Aufgabe abgeschlossen ist. Ich suchte nach einer Möglichkeit, die Ressourcen pro Prozess für alle Prozesse zu beschränken.

Das heißt, keiner der Prozesse überschreitet 25% der CPU oder 3 GB RAM.

Vielen Dank

0
Ich nehme an, Sie sind auf einer Single-Core-CPU? Frank Thomas vor 8 Jahren 0
Quad Core i3 CPU heailraiser vor 8 Jahren 0
In diesem Fall sollte eine einzelne ausgelastete Task keine anderen Threads / Prozesse sperren. Selbst wenn die Task massiv Multithread-Linux-Timeslices zwischen aktiven Prozessen (mithilfe eines Schedulers) enthalten würde, erhält jeder sozusagen einen Zug. Prioritäten für Prozesse werden durch sogenannte Freundlichkeit gegeben. Dies ist möglicherweise die beste Lösung für Ihr Problem. Ich empfehle, dass Sie gut aussehen und renice'ing. Das Verhalten, das Sie beschreiben, betrifft mich jedoch insofern, als ich nicht sicher bin, ob das Problem die CPU-Auslastung per se ist. Wenn Sie willkürliche Prozesse einschränken möchten, besuchen Sie http://www.cyberciti.biz/faq/cpu-usage-limiter-for-linux/ Frank Thomas vor 8 Jahren 0

1 Antwort auf die Frage

1
txtechhelp

Die Begrenzung aller Prozesse auf ein beliebiges Limit ist möglicherweise nicht so vorteilhaft, wie Sie zunächst denken.

Wie in einem Kommentar hervorgehoben, können Sie die CPU einschränken. Je nach Prozess können Sie jedoch besser die Einstellung nicedes Prozesses (auch als Prozesspriorität bezeichnet) festlegen. Auf diese Weise kann der Prozess mit voller Geschwindigkeit ausgeführt werden, wenn Sie nur eine Website lesen und keine CPU verwenden. Sie muss jedoch Ihrem Browser weichen und nachgeben, sobald er die CPU (s) für JavaScript verwenden muss (als Beispiel).

Eine andere Option besteht darin, die CPU-Affinität des Prozesses festzulegen. Auf diese Weise kann das Betriebssystem den Prozess nur auf einem bestimmten CPU-Kern ausführen, sodass die anderen 3 (in Ihrem Fall) für alles andere frei bleiben, was möglicherweise erforderlich ist. Dies ist sinnvoll, wenn es sich bei Ihrem Prozess um einen Single-Thread-Prozess handelt (z. B. ein Videocodierungsprozess oder ein Prozess zum Erstellen von Quellen). Sie können die Affinität auf den ersten CPU-Kern einstellen und Sie haben drei weitere im Leerlauf (bis sie verwendet wird).

Und es gibt auch ulimitdie Möglichkeit, Soft- und Hard-Limits oder RAM / CPU einzustellen (obwohl dies systemweit ist und nicht pro Prozess).

Es sollte beachtet werden, dass die Begrenzung des Arbeitsspeichers unbeabsichtigte Folgen haben kann (z. B. die Verwendung von Auslagerungen). Stattdessen sollten Sie den niceWert CPU-Affinität oder ulimitCPU-Zeit ausprobieren, bevor Sie den Arbeitsspeicher begrenzen. RAM ist nicht wie CPU, da eine höhere Auslastung die allgemeine Systemleistung beeinträchtigt. Im Gegenteil, die Systemleistung steigt tendenziell an, wenn mehr RAM verwendet werden kann, und Sie sollten nur dann einen Leistungsabfall bemerken, wenn der Swap-Bereich über den RAM genutzt werden muss (da der Swap in der Regel auf Festplatten basiert und um Größenordnungen langsamer ist als der RAM) Sie bemerken, dass eine Menge Swap-Bereich mit ein paar freien RAM genutzt wird. Dann gibt es noch etwas anderes, das angesprochen werden muss (wie eine Kernel-Einstellung).

Hoffe das kann helfen.