Wie kann ich die RAM-Nutzung für einen bestimmten Benutzer oder Prozess einschränken?


8

Ich verwende einen Hintergrunddienst, der von Zeit zu Zeit Speicher verliert. Um die Verwendung von Alt+ SysRq REISUB[ 1 ] zu verhindern , möchte ich die RAM-Nutzung für einen Prozess oder einen Systembenutzer einschränken.

Ich möchte wirklich sagen: Benutzer x darf die maximale RAM-Größe von 1 GB verwenden.

Ist das machbar? Benötige ich dafür eine Art virtuelle Maschine? Ich benutze Ubuntu 9.10.

Antworten:


10

ulimit ist dein Freund. Überprüfen Sie das Flag -m. Ich denke, Sie haben dies festgelegt, bevor Sie Ihren Prozess starten, und es gilt von da an (in der aktuellen Shell).


Danke, netter Hinweis! Soweit ich weiß, begrenzt es den Speicher / Prozess / den Verbrauch aller Benutzer. Ich möchte es nur auf einen Benutzer / Prozess und Unterprozesse beschränken.
Guerda

1
ulimit ist ein Shell-Befehl und wirkt sich nur auf Prozesse aus, die von derselben Shell gestartet wurden, nachdem ulimit ausgeführt wurde. Sie starten den Prozess in einem Shell-Skript mit einem ulimit-Befehl, damit er nur diesen Prozess beeinflusst.
KeithB

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.