ユーザー間でリソースを公平に共有するようにcgroupを構成するにはどうすればよいですか?


11

以前は、sched_userなどのカーネル構成オプションがcgroupsの下にありました。これにより、(私の知る限り)すべてのユーザーがシステムリソースを公平に共有できるようになりました。2.6.35では使用できません。すべてのユーザー(rootを含む)間でio / cpu / memoryリソースを自動的に共有するようにシステムを構成する方法はありますか?これまでにcgroupを設定したことがありません。そうするための良いチュートリアルはありますか?どうもありがとうございました。


まあ、私はUbuntuのcgroups-binパッケージを略奪しましたが、インストールしただけの場合、デフォルトで「これを行う」と確信しています。セットアップが必要だと思いましたが、特別なニーズがある場合にだけ必要だと思います。ルートの下に2つのCPUスレッド、ユーザーの下に2つのCPUスレッドを使用してストレスを実行してテストしましたが、4つのスレッドすべてがトップで50%を共有しているようで、動作していると思います。これで「解決」するかもしれませんが、確認のためのより明確な方法、または構成方法のより良いアイデアが必要な場合は、ありがとうございます!
NightwishFan 2010

回答:


12

カーネルのドキュメントでは、cgroupの一般的な範囲と例が提供されています。

cgroups-bin(依存するパッケージlibcgroup1、既に配布が提供する)は問題ないはずです。

構成は、次の2つのファイルを編集することによって行われます。

/etc/cgconfig.conf

libcgroupによって、制御グループ、それらのパラメーター、およびマウントポイントを定義するために使用されます。

/etc/cgrules.conf

libcgroupによって使用され、プロセスが属する制御グループを定義します。

これらの構成ファイルにはすでに例が含まれているため、要件に合わせて調整してみてください。マニュアルページはそれらの設定をかなりカバーしています。

その後、ワークロードマネージャーとルールデーモンを起動します。

service cgconfig restart
service cgred restart

ワークロードマネージャ(cgconfig)は、リソースの割り当てを担当します。
マネージャーに新しいプロセスを追加します。

cgexec [-g <controllers>:<path>] command [args]

すでに実行中のプロセスをマネージャーに追加します。

cgclassify [-g <controllers>:<path>] <pidlist>

または、cgrules.confファイルとCGroupルールデーモン(cgred)を自動的に上書きして、新しく生成されたすべてのプロセスを指定されたグループに強制します。


/etc/cgconfig.confの例:

group group1 {
    perm {
            task {
                    uid = alice;
                    gid = alice;
            }
            admin {
                    uid = root;
                    gid = root;
            }
    }

    cpu {
            cpu.shares = 500;
    }

}

group group2 {
    perm {
            task {
                    uid = bob;
                    gid = bob;
            }
            admin {
                    uid = root;
                    gid = root;
            }
    }

    cpu {
            cpu.shares = 500;
    }

}

mount {
    cpu = /dev/cgroups/cpu;
    cpuacct = /dev/cgroups/cpuacct;
}

/etc/cgrules.confの例:

alice            cpu             group1/
bob              cpu             group2/

これにより、ユーザー「alice」と「bob」の間でCPUリソースが約50〜50共有されます。


cgroupを学習し、これにブックマークを付けました。ありがとう。
Jigar 2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.