Làm cách nào tôi có thể hạn chế sử dụng RAM cho một người dùng hoặc quá trình cụ thể?


8

Thỉnh thoảng tôi đang sử dụng dịch vụ nền làm rò rỉ bộ nhớ. Để tránh sử dụng Alt+ SysRq REISUB[ 1 ], tôi muốn hạn chế sử dụng RAM cho một quy trình hoặc người dùng hệ thống.

Tôi thực sự muốn nói: Người dùng x có thể sử dụng dung lượng RAM tối đa là 1 GB.

Điều này có khả thi không? Tôi có cần loại máy ảo cho việc này không? Tôi đang sử dụng Ubuntu 9.10.

Câu trả lời:


10

ulimit là bạn của bạn. Kiểm tra cờ -m. Tôi nghĩ rằng bạn đã thiết lập điều này trước khi bạn khởi chạy quy trình của mình và nó được áp dụng từ đó trở đi (trong trình bao hiện tại).


Cảm ơn, gợi ý tốt đẹp! Theo tôi hiểu ulimit, nó giới hạn tất cả bộ nhớ / quá trình / bất kỳ mức tiêu thụ nào của người dùng. Tôi chỉ muốn giới hạn nó cho một người dùng / quy trình & quy trình con.
guerda

1
ulimit là một lệnh shell và chỉ ảnh hưởng đến các tiến trình bắt đầu từ cùng một shell sau khi ulimit được thực thi. Bạn khởi động tiến trình trong tập lệnh shell bằng lệnh ulimit để nó ảnh hưởng đến quá trình đó.
KeithB

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.