cpulimitお試し

cpulimitというCPU使用率を制限できるツールを試してみた。
確認環境
入手
上記、URLから入手(詳細割愛)
コンパイル
(1) 解凍
[owner@localhost ~]$ tar zxvf cpulimit-1.1.tar.gz
cpulimit-1.1/
cpulimit-1.1/Makefile
cpulimit-1.1/cpulimit.c
[owner@localhost ~]$ cd cpulimit-1.1
(2) コンパイル
[owner@localhost cpulimit-1.1]$ make
gcc -o cpulimit cpulimit.c -lrt -Wall -O2
[owner@localhost cpulimit-1.1]$
インストール
インストール機能は付いてない。自分で好きな場所に移動が必要。

お試し
(1) ループシェルを作成
$ cat loop.sh
#!/bin/sh
while :; do :; done;
$
(2) ループを実施(制限なし)
$ sh ./loop.sh &
$ top
op - 18:54:11 up 14 days,  1:51,  1 user,  load average: 0.36, 0.20, 0.15
Tasks: 221 total,   6 running, 213 sleeping,   0 stopped,   2 zombie
Cpu(s): 50.6%us,  0.7%sy,  0.0%ni, 48.8%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1927292k total,  1898348k used,    28944k free,   154448k buffers
Swap:  2097052k total,   126540k used,  1970512k free,  1115344k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 3988 owner     25   0 63860 1076  928 R 99.7  0.1   0:10.63 sh
 3989 owner     15   0 12844 1176  808 R  0.7  0.1   0:00.05 top
29602 owner     15   0  657m 127m  31m R  0.7  6.8 108:40.45 firefox
 2757 root      34  19     0    0    0 R  0.3  0.0  75:20.93 kipmi0
 2985 root      15   0  184m 3436 2168 S  0.3  0.2   4:30.63 amDaemon
 3079 root      15   0  671m  48m  46m S  0.3  2.6 121:50.97 eecd
    1 root      15   0 10352  596  564 S  0.0  0.0   0:01.39 init
    2 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 migration/0
    3 root      34  19     0    0    0 S  0.0  0.0   0:00.12 ksoftirqd/0
    4 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 watchdog/0
    5 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 migration/1
    6 root      34  19     0    0    0 S  0.0  0.0   0:00.20 ksoftirqd/1
    7 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 watchdog/1
    8 root      10  -5     0    0    0 S  0.0  0.0   0:00.03 events/0
    9 root      10  -5     0    0    0 S  0.0  0.0   0:00.02 events/1
   10 root      10  -5     0    0    0 S  0.0  0.0   0:00.02 khelper
   27 root      10  -5     0    0    0 S  0.0  0.0   0:00.01 kthread
(3) ループを実施(50%制限)
$ sh loop.sh &
[1] 4077
$ ./cpulimit -l 50 -p 4077 &
[2] 4086
Process 4077 detected
Warning: cannot renice.
To work better you should run this program as root.
$ top
top - 19:00:09 up 14 days,  1:57,  1 user,  load average: 0.87, 0.69, 0.40
Tasks: 222 total,   4 running, 216 sleeping,   0 stopped,   2 zombie
Cpu(s): 26.2%us,  0.8%sy,  0.0%ni, 72.5%id,  0.5%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1927292k total,  1900624k used,    26668k free,   154556k buffers
Swap:  2097052k total,   126540k used,  1970512k free,  1116004k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 4077 owner     15   0 63860 1080  928 R 50.5  0.1   2:09.78 sh
 2757 root      34  19     0    0    0 R  1.0  0.0  75:22.33 kipmi0
29661 owner     15   0 99072  29m  13m S  0.7  1.5  21:37.42 npviewer.bin
 3728 owner     15   0 70528 1776 1304 S  0.3  0.1   0:00.16 bash
29211 owner     15   0 60012  19m 5652 S  0.3  1.0  42:04.71 Xvnc
    1 root      15   0 10352  596  564 S  0.0  0.0   0:01.39 init
    2 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 migration/0
    3 root      34  19     0    0    0 S  0.0  0.0   0:00.12 ksoftirqd/0
    4 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 watchdog/0
    5 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 migration/1
    6 root      34  19     0    0    0 S  0.0  0.0   0:00.20 ksoftirqd/1
    7 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 watchdog/1
    8 root      10  -5     0    0    0 S  0.0  0.0   0:00.03 events/0
    9 root      10  -5     0    0    0 S  0.0  0.0   0:00.02 events/1
   10 root      10  -5     0    0    0 S  0.0  0.0   0:00.02 khelper
   27 root      10  -5     0    0    0 S  0.0  0.0   0:00.01 kthread
   32 root      10  -5     0    0    0 S  0.0  0.0   0:00.04 kblockd/0 
(3) ループ実施(10%制限)
$ ./cpulimit -l 10 -p 4077 &
[2] 4201
Process 4077 detected
Warning: cannot renice.
To work better you should run this program as root.
$ top
top - 19:03:45 up 14 days,  2:01,  1 user,  load average: 2.45, 1.38, 0.71
Tasks: 222 total,   1 running, 218 sleeping,   1 stopped,   2 zombie
Cpu(s):  5.8%us,  0.3%sy,  0.0%ni, 93.9%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1927292k total,  1900904k used,    26388k free,   154672k buffers
Swap:  2097052k total,   126540k used,  1970512k free,  1116448k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 4077 owner     15   0 63860 1080  928 T 10.6  0.1   3:59.60 sh
 4222 owner     15   0 12844 1172  808 R  0.3  0.1   0:00.06 top
29211 owner     15   0 60012  19m 5652 S  0.3  1.0  42:09.18 Xvnc
29661 owner     15   0 99072  29m  13m S  0.3  1.5  21:40.00 npviewer.bin
    1 root      15   0 10352  596  564 S  0.0  0.0   0:01.39 init
    2 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 migration/0
    3 root      34  19     0    0    0 S  0.0  0.0   0:00.12 ksoftirqd/0
    4 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 watchdog/0
    5 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 migration/1
    6 root      34  19     0    0    0 S  0.0  0.0   0:00.20 ksoftirqd/1
    7 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 watchdog/1
    8 root      10  -5     0    0    0 S  0.0  0.0   0:00.03 events/0
    9 root      10  -5     0    0    0 S  0.0  0.0   0:00.02 events/1
   10 root      10  -5     0    0    0 S  0.0  0.0   0:00.02 khelper
   27 root      10  -5     0    0    0 S  0.0  0.0   0:00.01 kthread
   32 root      10  -5     0    0    0 S  0.0  0.0   0:00.04 kblockd/0
   33 root      10  -5     0    0    0 S  0.0  0.0   0:00.47 kblockd/1
備考
参考
以上

コメント