ulimit - サーバー運営上必要なコマンド
OSリソースの制限を行う(設定を確認する)
■よく使う形(例)
※プロセスに割り当てられるリソースの上限値(制限)を表示する。
# ulimit -a
| core file size | (blocks, -c) | 0 |
| data seg size | (kbytes, -d) | unlimited |
| max nice | (-e) | 0 |
| file size | (blocks, -f) | unlimited |
| pending signals | (-i) | unlimited |
| max locked memory | (kbytes, -l) | unlimited |
| max memory siz | (kbytes, -m) | unlimited |
| open files | (-n) | 1024 |
| pipe size | (512 bytes, -p) | 8 |
| POSIX message queues | (bytes, -q) | unlimited |
| max rt priority | (-r) | 0 |
| stack size | (kbytes, -s) | 8192 |
| cpu time | (seconds, -t) | unlimited |
| max user processes | (-u) | unlimited |
| virtual memory | (kbytes, -v) | unlimited |
| file locks | (-x) | unlimited |
※ユーザーが利用できる最大プロセス数を1024に制限する。
# ulimit -u 1024| max user processes | (-u) | 1024 |
ulimitコマンドは、ユーザープロセスに対してのリソース利用制限を設定させることができます。
OSのデフォルトではあまり制限されているものではありませんが、「多くのユーザーがログインする」とか、「大規模なBINDを運営する」といったときなど、リソース制限を的確に設定する必要が生じます。
なお、ulimitコマンドはBシェル系で使うコマンドです。 Cシェルではlimitコマンドを使いますが、使い方はほも同じです。
■主なオプション
| オプション | 機能説明 |
|---|---|
| -a | 全項目を表示する |
| -c | 作成できるコアファイルのサイズ(ブロック)上限 |
| -d | プロセスのデータセグメントのサイズ |
| -f | 1つのファイルの大きさ(ブロック)上限値 |
| -l | プロセスが mlock()関数を使用して、プロセスをメモリにロックできる最大サイズ |
| -m | プロセスが使用できるメモリ使用量(KB) |
| -n | ユーザがオープンできるファイルの上限数 |
| -p | パイプのサイズ |
| -s | 自動的に拡張されるスタックのサイズ(KB)の上限値 |
| -t | プロセスが CPU を使うことのできる時間(秒)の上限値 |
| -u | 同時に実行可能なプロセス数の上限数 |
| -v | 仮想メモリのサイズ |
| -x | 作成可能なファイルロックの数 |