Cgroups : ルールを設定する2017/08/30 |
|
コントロールグループに登録するタスクのルールは、設定ファイルに記述しておくことで自動適用が可能です。
|
|
| [1] | 設定ファイルからコントロールグループへタスクを登録するための Cgred サービスを起動しておきます。 |
|
[root@dlp ~]# systemctl start cgred [root@dlp ~]# systemctl enable cgred
|
| [2] | ルールの設定例です。 |
|
# コントロールグループ作成 [root@dlp ~]# cgcreate -g cpu:/cpu_quota-70 [root@dlp ~]# cgset -r cpu.cfs_quota_us=70000 cpu_quota-70 [root@dlp ~]# cgget -g cpu /cpu_quota-70
/cpu_quota-70:
cpu.rt_period_us: 1000000
cpu.rt_runtime_us: 0
cpu.stat: nr_periods 0
nr_throttled 0
throttled_time 0
cpu.cfs_period_us: 100000
cpu.cfs_quota_us: 70000
cpu.shares: 1024
[root@dlp ~]#
vi /etc/cgrules.conf # 最終行に追記 # [ユーザー] [サブシステム] [コントロールグループ] cent cpu /cpu_quota-70 # 特定のコマンド/スクリプトを指定する場合は [ユーザー:コマンド] # ワイルドカード使用可 (*=全て) # 全ユーザーの [test.sh] は [cpu_quota-70] へ関連付ける *:test.sh cpu /cpu_quota-70 # グループを指定する場合は [@グループ] @cent cpu /cpu_quota-70
[root@dlp ~]# systemctl restart cgred
# [cent] ユーザーで確認 # ジョブ投入 [cent@dlp ~]$ yes > /dev/null & [1] 1353 # 設定通り CPU#0 は 70% 程度に制限 [cent@dlp ~]$ mpstat -P ALL 1 1 | grep ^Average Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle Average: all 34.67 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 65.33 Average: 0 69.70 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 30.30 Average: 1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 # 追加ジョブ投入 [cent@dlp ~]$ yes > /dev/null & [2] 1374 [cent@dlp ~]$ mpstat -P ALL 1 1 | grep ^Average Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle Average: all 34.83 0.00 0.50 0.00 0.00 0.00 0.00 0.00 0.00 64.68 Average: 0 36.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 64.00 Average: 1 33.33 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 66.67 # ジョブを追加投入すると、空いている別の CPU コアで実行されるが # 100000μs あたり 70000μs 時間の CPUアクセスが可能となる設定のため上記のような結果となる
|