Jak mogę ograniczyć użycie pamięci RAM dla konkretnego użytkownika lub procesu?


8

Korzystam z usługi w tle, która od czasu do czasu przecieka pamięć. Aby zapobiec użyciu Alt+ SysRq REISUB[ 1 ], chciałbym ograniczyć użycie pamięci RAM dla jednego procesu lub użytkownika systemu.

Naprawdę chciałbym powiedzieć: Użytkownik x może użyć maksymalnej ilości pamięci RAM wynoszącej 1 GB.

Czy to jest wykonalne? Czy potrzebuję do tego rodzaju maszyny wirtualnej? Używam Ubuntu 9.10.

Odpowiedzi:


10

ulimit jest twoim przyjacielem. Sprawdź flagę -m. Myślę , że ustawiłeś to przed uruchomieniem procesu i ma on zastosowanie od tego momentu (w bieżącej powłoce).


Dzięki, miła wskazówka! Jak rozumiem ulimit, ogranicza pamięć wszystkich użytkowników / proces / jakiekolwiek zużycie. Chciałbym ograniczyć to do jednego użytkownika / procesu i podprocesów.
guerda,

1
ulimit jest poleceniem powłoki i wpływa tylko na procesy uruchomione z tej samej powłoki po wykonaniu ulimit. Proces uruchamiasz w skrypcie powłoki za pomocą komendy ulimit, aby wpłynął tylko na ten proces.
KeithB,

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.