のLinuxのcgroupは、さまざまなシナリオのための物理メモリの制御下で使用することができ、我々はそれの基本的な理解を持っているように、より多くの事ののcgroupので、本論文では、あなたのLinuxのcgroup下に簡単な紹介を行います。
から始まるバージョン2.6.24からは、Linuxカーネルはのcgroup(対照群)と呼ばれる機能を提供します。 Cgroupは制御グループの省略形です
のLinuxのcgroupは、さまざまなシナリオのための物理メモリの制御下で使用することができ、我々はそれの基本的な理解を持っているように、より多くの事ののcgroupので、本論文では、あなたのLinuxのcgroup下に簡単な紹介を行います。
から始まるバージョン2.6.24からは、Linuxカーネルはのcgroup(対照群)と呼ばれる機能を提供します。 Cgroupは制御グループの省略形です
コードは次のとおりです。
#! /ビン/bashの "/P" "P" cgroot =' $ {1 - /SYS /FS /cgroup内}'
SUBSYS =' $ {2:-blkio CPU cpuacctのcpusetの装置フリーザーメモリnet_cls net_prio NS perf_event}' "/P" "P" マウント-t tmpfsのcgroup_root' $ {cgroot}'
$のSUBSYSでSSのため、
を行う
ます。mkdir -p ' $ cgroot /$のSS'
マウント-tのcgroup -o' $ ssの'' $ ssの'' $のcgroot /$のSS'
は
終わっ
ディレクトリのいくつかは、lsのように、何であるかを見てみると、/SYS /FS /cgroup内/CPUを見てください。
のコードは次のとおりです。
cgroup.event_control cpu.cfs_period_us cpu.rt_period_us cpu.shares notify_on_releaseタスク
cgroup.procs cpu.cfs_quota_us cpu.rt_runtime_us cpu.stat release_agent
<; cpu。'は、このサブシステムに固有のもので始まります。他のものは各サブシステムに対応するディレクトリにあります。これらのファイルは、リソース使用情報とリソース制限を読み取るために使用されます。制御グループを作成するには、目的のサブシステムにディレクトリを作成します。たとえば、mkdir /sys /fs /cgroup /cpu /fooは/fooの制御グループを作成します。同じファイルのセットが新しく作成されたディレクトリに表示されます。このディレクトリには、ディレクトリを作成してcgroupを作成し続けることができます。つまり、cgroupはディレクトリ構造と同じくらい階層的になることができます。各サブシステムでドットディレクトリをマウントすることは、ルートディレクトリと同じです。それぞれ異なるパスは、異なるcgroupを表します。異なるサブシステムでは、同じパスが同じ制御グループを表します。例えば、使用することができ、両方のfoo /barディレクトリのCPU、メモリ/FOO /バーは、CPU、メモリ2つのサブシステムを運営しました。同じサブシステムの場合、各プロセスは1つのcgroupに所属し、1つのcgroupにのみ所属します。デフォルトはルートcgroupです。階層によって制御グループの編成と管理が容易になります構成項目によっては、階層もリソース割り当てに関連します。あるいは、root以外のユーザーも特定のセキュリティグループを操作できるように、ディレクトリの所有者を変更できます。
cgroupの設定と読み込みはそれらのファイルを読み書きすることで行われます。例えば
のコードは次のとおりです。
#「は/sys/fs/cgroup/cpu/foo/cpu.shares
コントロール群の/fooというCPUを置く2048年をエコー。 sharesパラメーターは2048に設定されています。
前述のとおり、一部のファイルはすべてのディレクトリに共通です。これらは一般的な設定です。その中で、タスクとcgroups.procsは、制御グループ内のプロセスを管理するために使用されます。プロセスをコントロールグループに追加するには、pidを適切なディレクトリのタスクファイルに書き込みます。
のコードは次のとおりです。5678 /fooの対照群を置く
#は5678エコー「/SYS /FS /cgroup内/CPU /fooの/タスク
は、プロセスに追加されます。それでは、タスクとcgroups.procsの違いは何ですか?上記の「プロセス」に対する管理上の制限は、実際には十分に正確ではありません。システムがタスクをスケジュールする単位はスレッドです。ここで、タスクに表示されるのはスレッドIDです。 cgroups.procsはスレッドグループIDです。これはプロセスIDとも呼ばれます。タスクのみPID対応するスレッド、ならびにそれによって生成された他のプロセスに書き込まれた一般的なPID制御グループのスレッドに属し、他のスレッドは、元ではありません。 cgroups.procsに書き込むと、現在のすべてのスレッドが追加されます。書き込みcgroups.procsは、スレッドグループIDが、一般的なスレッドIDでない場合は、自動的に参加するために、対応するスレッドグループIDを検索します。プロセスが制御グループに参加すると、その制御グループに対応する制限がただちに有効になります。プロセスがどのコントロールグループに属しているかを調べるには、cat /proc /"pid" /cgroupで確認できます。
プロセスをコントロールグループの外に移動するには、pidをルートcgroupのタスクファイルに書き込みます。各プロセスは1つのcgroupに属し、1つのcgroupのみに属しているため、新しいcgroupが追加されると、元の関係は解放されます。 cgroupを削除するには、rmdirを使用して対応するディレクトリを削除します。削除する前に、あなたがそれらをプロセスから撤退させなければなりません。しかし、対応するサブシステムのリソースが、それ以外の場合は削除することはできません、リリースされています。
以前は、cgroupはファイルシステムアクセスを通じて操作されていました。実際、一連のコマンドラインツールもあります。
lssubsys -amは、サブシステムのマウントポイントを表示だけでなく、&'のセットすることができます。CG'コマンドの先頭には、管理するために使用することができます。一部のサブシステムでは、cgexecを使用してプログラムを指定の制御グループで直接実行できます。 cgexec -g' CPU、blkio:/fooの'のbash。他のコマンドや特定のパラメータは、人が見ることができます。
は、ここでは、bash cgexecのバージョンであるのcgroupの使用を示し、また、インストールコマンドラインツールかどうかの不確実性の場合に使用することができます。
コードは次のとおりです。
#! /bin /bash "/p" "p"#使用法:
#。 /cgexec.sh CPU:G1、メモリ:G2 /G21睡眠100 "/P" "P" blkio_dir =' /SYS /FS /cgroup内/blkio'
memory_dir =' /SYSの/fsの/cgroup内/メモリ'
cpuset_dir =' /SYS /FS /のcgroup /cpusetの'
perf_event_dir =' /SYS /FS /cgroup内/perf_event'
freezer_dir = ' /SYS /FS /cgroup内/冷凍庫'
net_cls_dir =' /SYS /FS /cgroup内/net_cls'
cpuacct_dir =' /SYS /FS /のcgroup /cpuacct' < BR>
cpu_dir =' /SYS /FS /cgroup内/CPU'
hugetlb_dir =' /SYS /FS /cgroup内/たhugetlb'
devices_dir =' /SYS /FS /cgroup内/デバイス' "/P" "P" グループ=' $ 1と'
シフト "/P" "P" IFS =‘、’ g_arr =($グループ)
$ {g_arr [@]}におけるG用、
を行う
IFS =‘:’ g_info =($ gで)
[$ {#1 g_info [] @}もし-ne 2];その後、
エコー'悪い引数$ G'「&#038; 2
は、
続けますFiの
g_name = $ {g_info [0]}
g_path = $ {g_info [1]}
もし' $ g_path' ==' $ { g_path#/}'];その後、
g_path =' /$ g_path'
Fiの
エコー$ g_name $ g_path
VAR =' $ {g_name} _ディレクトリ>
d = $ {! VAR}
もし[-z' $ D'];その後、
エコー'悪いCG名$ g_name'「&#038; 2
は、
<続けますP> Fiの
パス=' $ {D} $ {} g_path'
もし[! -d' $ path']; then
echo' cgが存在しません。 $$')<quo; $ {path} /tasks'
done "/p" "p" exec $ *
上記はLinux cgroupの説明です。機能、この記事はあなたがより多くのcgroupをお知りになりたい場合は、サイトのホームシステムにご期待ください、いくつかのcgroupの基本を説明します。
Linuxユーザはシステムログを見つけました。iisサーバはアプリケーション /lm /w3svc /1 /root /testをロードできませんでした。エラーは「登録カテゴリなし」です。この問題を解
Linuxシステムの多くのユーザーは短いコマンドに晒され、hadoop dfsコマンドは覚えにくいですが、よく使われますが、以下の小シリーズではLinuxを紹介します。システムはhadoop dfsコ
Linuxでのmoreコマンドは、主に分割画面表示、つまりcatコマンドとは少し異なる複数画面のファイルに使用されますが、次の小シリーズでは、moreコマンドについて
LinuxでのDDコマンドは一般的に使用されているコマンドの1つであり、DDコマンドも広く使用されています。ファイルをコピーするための既知のDDコマンドに加えて、DDコマンドを使用してディスクのパフォ