プログラムのCPU使用を制限する
CentOS7で、cpulimitを使ってプログラムのCPU使用率を制限します。
目次
cpulimitをインストール
CentOS7 minimalにはcpulimitが入っていませんので、yumでインストールします。
$ sudo yum install -y cpulimit
プログラム呼び出し時にCPU使用率を制限する
cpulimit -l ##を頭に付けてプログラムを実行します。 下記の場合は、xxxxというプログラムに-yyと-zzというコマンドラインオプションを付けて、CPU使用率を25%に制限して実行します。
$ cpulimit -l 25 xxxx -yy -zz
試してみた
まず無限ループするプログラムを実行します。
$ python -c 'while True: a=1' # 変数aに1を代入し続ける
これを実行してtopコマンドを見てみると、こうなります。
%Cpu(s): 99.7 us, 0.3 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 482556 total, 185764 free, 152732 used, 144060 buff/cache
KiB Swap: 1048572 total, 1048572 free, 0 used. 277416 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1158 hogehoge 20 0 123164 4256 1844 R 99.7 0.9 0:27.00 python
1 root 20 0 128172 6832 4068 S 0.0 1.4 0:02.53 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
pythonのCPU使用率がほぼ100%になっています。
では、cpulimitを付けて実行してみます。
$ cpulimit -l 10 python -c 'while True: a=1'
で、topで実行状態をみてみると、pythonが約10%に抑えられています。
%Cpu(s): 4.6 us, 0.0 sy, 0.0 ni, 95.4 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 482556 total, 184924 free, 153348 used, 144284 buff/cache
KiB Swap: 1048572 total, 1048572 free, 0 used. 276832 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1164 hogehoge 20 0 123164 4252 1844 T 9.0 0.9 0:02.09 python
1165 hogehoge 20 0 4320 476 356 S 0.7 0.1 0:00.09 cpulimit
9 root 20 0 0 0 0 S 0.3 0.0 0:00.86 rcu_sched
公開日
広告
設定カテゴリの投稿
- Apache2.4で行ったセキュリティ関係の設定
- CentOS7にgitをインストールする
- CentOS7にsamba 4.8をインストールする
- CentOS7のApacheでDjangoを動かしてみた
- Gitでバージョン管理をしてみた
- LogWatchでログを確認する
- Python3のCGIで日本語を出力する
- Raspberry Piにgitをインストールする
- サイトマップを作る
- プログラムのCPU使用を制限する
- 仮想マシンにCentOS7をインストールしてApache2.4とDjango2.0をセットアップする
- 仮想マシンのCentOS7にLaTeXとGhostScriptとImageMagickをインストール
- 自宅サーバーのGitをリモートリポジトリにする