GNU/Linux >> Linux の 問題 >  >> Linux

cgroup と名前空間の違い

cgroups プロセスまたは一連のプロセスが使用できるリソースを制限します。これらのリソースは、CPU、メモリ、ネットワーク I/O、またはファイルシステムへのアクセス です。 一方、名前空間はプロセスのグループの可視性をシステムの残りの部分に制限します。

Linux カーネルの Cgroups と名前空間が最新のコンテナーを可能にする方法


これら 2 つの概念の適切なリンクは、PR 14307 で修正されています:

<ブロック引用>

内部では、Docker は次のコンポーネントで構築されています。

cgroupsnamespaces Linux カーネルの機能

と:

  • cgroup :コントロール グループは、一連のタスクとそれらの将来のすべての子を、特殊な動作を持つ階層グループに集約/分割するためのメカニズムを提供します。
  • 名前空間 :グローバル システム リソースを抽象化してラップし、名前空間内のプロセスに、グローバル リソースの独自の分離されたインスタンスがあるように見せます。

要するに:

  • Cgroups =使用できる量を制限します;
  • 名前空間 =表示できるもの (したがって使用できるもの) を制限します

詳細については、Jérôme Petazzoni による「コンテナーの構造:名前空間、cgroup、ファイルシステムの魔法」を参照してください。

cgroup には、リソースの計測と制限が含まれます。

  • 記憶
  • CPU
  • ブロック I/O
  • ネットワーク

名前空間は、システムの独自のビューをプロセスに提供します

複数の名前空間:

  • ピッド
  • ネット
  • うた
  • IPC
  • ユーザー:ユーザー docker 1.10で実験的段階を卒業しています
    (権限のないユーザーへのコンテナ ルートのデーモン インスタンスごとの再マッピングが進行中です:PR 12648:その設計を参照してください)

Linux
  1. 2>&-、2> / dev / null、|&、&> / dev/nullと>/dev / null 2>&1の違いは?

  2. Sudo Su –とSudo Su —の違いは何ですか?

  3. Sudoユーザーとrootユーザーの違いは?

  1. SnatとMasqueradeの違いは?

  2. CLOCK_REALTIME と CLOCK_MONOTONIC の違いは?

  3. GNUWin32 と cygwin の違い

  1. ログインシェルと非ログインシェルの違いは?

  2. [[$ a ==Z*]]と[$a==Z *]の違いは?

  3. EotとEofの違いは?