FreeBSD ハンドブック
Prev | Chapter 11. 設定とチューニング | Next

# 11.10. Kernel 制限のチューニング

## 11.10.1. File/Process 制限

### 11.10.1.1. `kern.maxfiles`

`kern.maxfiles` はあなたのシステムの要求に 応じて増減させることができます。 この変数はあなたのシステムのファイル記述子の最大値を示します。 ファイル記述子テーブルが溢れるような時には、システムメッセー ジバッファに頻繁に `file: table is full` と表示されます。これは、 `dmesg` コマンドで確認できます。

ファイル、ソケット、パイプ (fifo) は それぞれオープンされるとファイル記述子を一つ消費します。 大規模なプロダクションサーバでは その時実行されているサービスの種類や数に応じては あっさり数千のファイル記述子が必要になります。

`kern.maxfile` のデフォルト値はカーネル コンフィグレーションファイルの `MAXUSERS` オ プションで決まります。`kern.maxfiles` は `MAXUSERS` の値に比例して増加します。 カスタムカーネルをコンパイルする際は、このカーネルコンフィグ レーションオプションをシステムの利用法に合わせて設定するとよ いでしょう。カーネルは、この数値からほとんどの制限の初期値を 決定します。業務用マシンに、実際に 256 名のユーザが一度に接 続することはないかもしれませんが、大規模なウェブサーバに必要 なリソースは同程度になります。

> Note: FreeBSD 4.5 からは、 カーネルコンフィグレーションファイルで `MAXUSERS` を `0` に設定すると、システムの RAM 容量に基づいて適切なデフォルト値が選択されます。

## 11.10.2. ネットワークの制限

カーネルコンフィグレーションオプション `NMBCLUSTERS` は、そのシステムで利用可能なネッ トワーク mbuf の量を決定します。通信量の多いサーバで MBUF の量 が少ないと、FreeBSD の性能が低下してしまいます。クラスタ一つは およそ 2kB のメモリに対応しているので、1024 だとカーネルメモリ から約 2 MB をネットワークバッファに予約することになります。ど れだけ必要になるかを、簡単な計算で出すことができます。同時に最 大 1000 接続までゆくウェブサーバがあり、それぞれの接続によって 受信バッファ 16kB と送信バッファ 16kB が消費されるなら、ウェ ブサーバをまかなうのに 32MB 程度のネットワークバッファが必要 になります。経験的に有用な値は、それを 2 倍したものなので、 32MBx2 = 64MB/2K = 32768 になります。

Prev | Home | Next
ディスクのチューニング | Up | FreeBSD の起動のプロセス