CentOS 7
Sponsored Link

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アクセスが可能となる設定のため上記のような結果となる
 
Tweet