Come posso limitare l'utilizzo della RAM per un particolare utente o processo?


8

Sto usando un servizio in background che perde di tanto in tanto la memoria. Per impedire l'utilizzo di Alt+ SysRq REISUB[ 1 ], vorrei limitare l'utilizzo della RAM per un processo o un utente del sistema.

Vorrei davvero dire: l'utente x può utilizzare la quantità massima di RAM di 1 GB.

È fattibile? Ho bisogno di un tipo di macchina virtuale per questo? Sto usando Ubuntu 9.10.

Risposte:


10

ulimit è tuo amico. Dai un'occhiata alla bandiera -m. Penso che tu abbia impostato questo prima di avviare il processo e si applica da quel momento in poi (nella shell corrente).


Grazie, bel suggerimento! A quanto ho capito ulimit, limita tutto la memoria gli utenti / processo / qualunque cosa il consumo. Mi piace solo limitarlo a un utente / processo e sottoprocessi.
guerda,

1
ulimit è un comando shell e influisce solo sui processi avviati dalla stessa shell dopo l'esecuzione di ulimit. Si avvia il processo in uno script di shell con un comando ulimit per fare in modo che influisca proprio su quel processo.
KeithB,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.