Ubuntu 12.04 でコンピューティング サービスをホストしていますが、ユーザーが forkbombing するのを防ぐ方法が必要です。私は現在setrlimit(RLIMIT_NPROC)
Linuxで使用しています。ただし、これは実際には、特定の UID のプロセス数にグローバルな制限を設定します。私のサービスには多くの並列ジョブがあり、すべてが同じ UID で実行されているため、1 つのプロセスがサービス全体を DOS で実行できることを意味します。
代わりに、現在のプロセスの子プロシージャの再帰的な数などに制限を設定する方法を探しています。Linux を調べるように言われましたがcgroups
、libcgroup
正直なところ、これで問題がどのように解決されるのかよくわかりません。任意のヒント?