CentOS 6
Sponsored Link

CPU使用率を制限する
2013/06/21
 
CPULimit を使うと CPU の使用率を制限することができます。
[1] CPULimit インストール
[root@dlp ~]#
yum --enablerepo=epel -y install cpulimit
 
# EPELからインストール
[2] テストとして、ループするテストプログラムを作成して実行させておく。
注 : CPU使用率がほぼMAXまで上がるので、何が起こってもよいテスト機器で実施してください。
[root@dlp ~]#
vi test.sh
#!/bin/bash
while :; do :; done;
[root@dlp ~]#
chmod 700 test.sh

[root@dlp ~]#
./test.sh &

[1] 1409
[root@dlp ~]#
top

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1409 root      20   0  103m 1256 1084 R 99.1  0.1   0:12.86 test.sh
    1 root      20   0 19228 1464 1184 S  0.0  0.1   0:00.46 init
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd
# ↑ test.sh の CPU負荷が99%超になっている

[3] CPULimit で制限する
# test.sh の使用率を 20% に制限する [ cpulimit -l (パーセント) -p (プロセスID) ]

[root@dlp ~]#
cpulimit -l 20 -p 1409 &

[4] 1410
[root@dlp ~]#
top

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1409 root      20   0  103m 1252 1084 R 19.8  0.1   0:34.47 test.sh
    1 root      20   0 19228 1464 1184 S  0.0  0.1   0:00.46 init
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd
# ↑ test.sh の CPU負荷が20%以内になった
[4] 制限を解除するには CPULimit のプロセスを切ってください。
[root@dlp ~]#
ps -ef | grep cpulimit

root      1410  1162  0 15:11 ttyS0    00:00:00 cpulimit -l 20 -p 1409
root      1434  1417  0 15:21 ttyS0    00:00:00 grep cpulimit
[root@dlp ~]#
kill 1410

Exiting...
[root@dlp ~]#
top

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 1409 root      20   0  103m 1252 1084 R 100.0  0.1   3:19.51 test.sh
    1 root      20   0 19228 1464 1184 S  0.0  0.1   0:00.46 init
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd
 
Tweet