VineLinuxパフォーマンスアッププロジェクト:0122
■メモリの使用量等を制限する方法■
1つのコマンドを実行すれば当然その間CPUやメモリは消費されます。VineLinuxにおいてこの消費される量(言い換えればコマンドに割り当てられるCPUやメモリのリソース)はあらかじめ制限されています。今回はこの制限を解除・変更する方法を紹介します。
Windowsで複数のアプリケーションを起動させると動作が単体で起動するより鈍くなるという経験をした方はかなりいらっしゃるのではないでしょうか。あの原因は様々に考えられますが、一番大きな原因はメモリとCPUの負荷だと思います。もっともメモリを増やしたりデュアルコアのCPUを使えば解決できる問題だと思いますが、ここでは既存の環境でulimitコマンドを利用する方法を紹介します。
ulimitコマンドはコマンドに割り当てる資源を変更するために使用します。
ulimitコマンドそのままでは現在の情報がすべて表示されませんので、オプション"-a"をつけて実行します。すると以下のようなレイアウトで情報が表示されます。
[root@XXX root]$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 3839
virtual memory (kbytes, -v) unlimited
高負荷プログラミングにおいては上記項目の特にスタックサイズを変更することで少しは改善が見られるかもしれません。例えばスタックサイズをデフォルトの8192から制限なしに切り替える場合には
ulimit -s unlimited
とターミナル上で実行してください。
この他にも変更ができます。詳しくは下のページをご覧ください。
Linuxコマンド集 ulimit: http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230911/
※この設定はシステムを再起動すると消えますので注意してください。