cgroup
メモリ制御には 2 つのオプションがあります。
memory.use_hierarchy = 1
: 階層を使用memory.use_hierarchy = 0
:この回答に従って、フラットな階層を使用します
2つの違いは何ですか?ヒエラルキーはヒエラルキーだと思いますが、ここで「フラット」とはどういう意味ですか?
編集:ここでcgroupのドキュメントを読み、階層サポートについて説明しました:
上の図では、階層アカウンティングが有効になっているため、e のすべてのメモリ使用量は、memory.use_hierarchy が有効になっているルート (つまり、c とルート) までの祖先に計上されます。祖先の 1 つが制限を超えた場合、再利用アルゴリズムは、祖先とその子のタスクから再利用します。
- とはどういう意味
accounted to its ancestors up until the root
ですか? - 祖先の容量の合計がその子の容量に割り当てられているため、先祖はどのようにしてその制限を超えることができるのでしょうか?
- 祖先と子の両方でタスクが回収されるのはなぜですか? タスクは子にのみ割り当てられ、それらのタスクは自動的に先祖に属していると思いました。つまり、「WWW ブラウジング」には 20% の容量があります。その子は「Professors」と「Students」で、それぞれ 15% と 5% です。最大値が 20% を超えることはありません。ドキュメントに次のように記載されているケースがあるのはなぜですか。
祖先の 1 つが制限を超えた場合、再利用アルゴリズムは、祖先とその子のタスクから再利用します。