ulimit/setrlimitおよびcgroupについて

ulimit/setrlimitおよびcgroupについて

私はこれら2つのメカニズム(AとBと呼ぶ)がプロセスのリソースを制限することを知っています。

二人が一緒に働く姿が気になります。

Aがプロセスのリソースを制限している場合、Bも同じリソースを制限するとどうなりますか?

ベストアンサー1

すべての制限は独立して適用されます。プロセスが特定の制限を超える要求を行うと、要求は拒否されます。これは、制限がcgroup、プロセス固有、またはユーザー固有であるかどうかを示します。

cgroupはプロセスグループごとに制限を設定し、setrlimitはユーザーまたはプロセスごとに制限を設定するため、これらのメカニズムは通常重複しません。特定の要求は、cgroupとsetrlimitの両方の制限を超えるか、どちらか一方を超えることができます。

すべての制限は許容される最大値であり、保証された最小値ではありません。たとえば、各プロセスのメモリ制限が1 GBの場合、200 MBのメモリを持つプロセスが100 MBのメモリを割り当てる要求は、適用可能な制限に関係なく、システムに利用可能なメモリがない場合は拒否される可能性があります。 setrlimitとcgroupの両方の制限が適用される場合、setrlimitの最大値、cgroupの最大値、および現在使用可能なリソースの最大値など、少なくとも3つの最大値を超えることがあります。

おすすめ記事