Có rất nhiều câu hỏi và câu trả lời về việc hạn chế tài nguyên của một quy trình, ví dụ RLIMIT_AS có thể được sử dụng để hạn chế bộ nhớ tối đa được phân bổ bởi một quy trình có thể được xem là VIRT top
. Thông tin thêm về chủ đề, ví dụ ở đây Có cách nào để giới hạn dung lượng bộ nhớ mà một quy trình cụ thể có thể sử dụng trong Unix không?
setrlimit(2)
tài liệu nói:
Một tiến trình con được tạo thông qua fork (2) kế thừa các giới hạn tài nguyên của cha mẹ nó. Giới hạn tài nguyên được bảo toàn trên thực thi (2).
Nó nên được hiểu theo cách sau:
Nếu một quá trình có RLIMIT_AS là 2GB, thì nó không thể phân bổ nhiều bộ nhớ hơn 2GB. Khi nó sinh ra một đứa trẻ, giới hạn không gian địa chỉ là 2GB sẽ được truyền cho đứa trẻ, nhưng việc đếm bắt đầu từ 0. Hai quá trình cùng nhau có thể chiếm tới 4GB bộ nhớ.
Nhưng điều gì sẽ là cách hữu ích để hạn chế tổng số bộ nhớ được phân bổ bởi toàn bộ cây quy trình?