KernelLinuxカーネルにはCPUやメモリといったリソースをプロセス単位で制限できるcgroupという機能があります。組み込みなどでは、apt/yumを使えず、ライブラリの追加が容易ではない環境もあります。そこで、libcgroupを使わずにcgroupによるCPU割り当て制限を試してみました。使い方cgroupも/procや/sys同様に、カーネルが生成するファイルへのアクセスで操作できます。大まかな使い方は以下のとおりです。cgroupを使うために必要なカーネルコンフィギュレーションやカーネルのビルド方法については割愛します。プロセスへのCPU割り当てを10%までに制限してみるまずは、cgroupをmountします。2016/12/15)cgroupのマウントポイントとしては/sys/fs/cgroupが一般的なようです。Jessieでは/sys/fs/cgroupへマウントしています。)そして、次にリソース制限を行うグループ(cgroup)を作成します。操作としてはマウント先のディレクトリ直下にディレクトリを作成するだけです。lsすると/cgroup/直下と同じファイルがtest/にも自動的に生成されていることがわかります。cgroupの初期設定として、cgroup内のプロセスがアクセス可能なCPU(cpuset.cpus)とメモリ(cpuset.mems)を設定します。親(/cgroup/直下)の設定を確認し、そのまま同じ設定を行います。/cgroup/test/cpuset.memsそして、cgroupへのCPUの割り当て制限を行います。ここでは10%までに制限しています。最後に、制限を行いたいプロセスをcgroupのtasksへ追加します。6799のプロセスをcgroupへ追加しています。以降、test/tasksへ同様にプロセスを追加していくと、tasksのプロセス合計のCPU使用率が10%までとなるよう制限されますCPUリソースが制限されている様子はtop、htopなどで確認すると分かりやすいです。cgroupを一時停止(FROZEN)したり、再開(THAWED)したりfreezer.stateを使用すると、cgroupに属するプロセスを一時停止したり、再開したりできます。/cgroup/test/freezer.state参考cgroupをマウントした先の各ファイルについては、redhatのマニュアルが参考になります。サンプルを動かしてみた)昨日(2/24)の記事の続きです。pwclientでパッチ適...今日(2/24)、LKMLで以下のパッチが流れていました。読者になる検索リンクはてなブログブログをはじめる週刊はてなブログはてなブログPro最新記事コミックマーケット97(C97)で「バイナリ生物学入門」出します!技術書典7で「x86_64機械語入門」本出します!コミックマーケット96(C96)で「マルチコア本」出します!技術書典6で自作NICドライバ本「ぼくらのイーサネットフレーム!」出します!はてなブログへ移行しました月別アーカイブはてなブログをはじめよう!cupnesさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。