Ada banyak pertanyaan dan jawaban tentang membatasi sumber daya dari satu proses, misalnya RLIMIT_AS dapat digunakan untuk membatasi memori maksimum yang dialokasikan oleh suatu proses yang dapat dilihat sebagai VIRT pada suka top
. Lebih lanjut tentang topik misalnya di sini. Apakah ada cara untuk membatasi jumlah memori proses tertentu dapat digunakan di Unix?
setrlimit(2)
dokumentasi mengatakan:
Proses anak yang dibuat melalui fork (2) mewarisi batasan sumber daya orang tuanya. Batas sumber daya dipertahankan di seluruh eksekutif (2).
Ini harus dipahami dengan cara berikut:
Jika suatu proses memiliki RLIMIT_AS misalnya 2GB, maka itu tidak dapat mengalokasikan lebih banyak memori dari 2GB. Ketika memunculkan anak, batas ruang alamat 2GB akan diteruskan ke anak, tetapi penghitungan dimulai dari 0. Kedua proses tersebut secara bersamaan dapat memakan memori hingga 4GB.
Tetapi apa cara yang bermanfaat untuk membatasi jumlah total memori yang dialokasikan oleh seluruh pohon proses?