単一のプロセスのリソースを制限することについては、多くの質問と回答があります。たとえば、RLIMIT_ASを使用して、などのVIRTと見なすことができるプロセスによって割り当てられる最大メモリを制限できますtop
。もっとここで例えばトピックに関する特定のプロセスがUNIXで使用できるメモリの量を制限する方法はありますか?
setrlimit(2)
ドキュメントは言う:
fork(2)を介して作成された子プロセスは、その親のリソース制限を継承します。リソース制限はexecve(2)全体で保持されます。
次のように理解する必要があります。
プロセスのRLIMIT_ASが2GBなどの場合、2GBを超えるメモリを割り当てることはできません。子が生成されると、2GBのアドレススペース制限が子に渡されますが、カウントは0から始まります。2つのプロセスを一緒にすると、最大4GBのメモリを使用できます。
しかし、プロセスのツリー全体によって割り当てられたメモリの合計を制約する便利な方法は何でしょうか?