kern.maxfiles
はあなたのシステムの要求に
応じて増減させることができます。
この変数はあなたのシステムのファイル記述子の最大値を示します。
ファイル記述子テーブルが溢れるような時には、システムメッセー
ジバッファに頻繁に file: table is full
と表示されます。これは、
dmesg
コマンドで確認できます。
ファイル、ソケット、パイプ (fifo) は それぞれオープンされるとファイル記述子を一つ消費します。 大規模なプロダクションサーバでは その時実行されているサービスの種類や数に応じては あっさり数千のファイル記述子が必要になります。
kern.maxfile
のデフォルト値はカーネル
コンフィグレーションファイルの MAXUSERS
オ
プションで決まります。kern.maxfiles
は
MAXUSERS
の値に比例して増加します。
カスタムカーネルをコンパイルする際は、このカーネルコンフィグ
レーションオプションをシステムの利用法に合わせて設定するとよ
いでしょう。カーネルは、この数値からほとんどの制限の初期値を
決定します。業務用マシンに、実際に 256 名のユーザが一度に接
続することはないかもしれませんが、大規模なウェブサーバに必要
なリソースは同程度になります。
FreeBSD 4.5 からは、
カーネルコンフィグレーションファイルで
MAXUSERS
を 0
に設定すると、システムの RAM
容量に基づいて適切なデフォルト値が選択されます。
カーネルコンフィグレーションオプション
NMBCLUSTERS
は、そのシステムで利用可能なネッ
トワーク mbuf の量を決定します。通信量の多いサーバで MBUF の量
が少ないと、FreeBSD の性能が低下してしまいます。クラスタ一つは
およそ 2kB のメモリに対応しているので、1024 だとカーネルメモリ
から約 2 MB をネットワークバッファに予約することになります。ど
れだけ必要になるかを、簡単な計算で出すことができます。同時に最
大 1000 接続までゆくウェブサーバがあり、それぞれの接続によって
受信バッファ 16kB と送信バッファ 16kB が消費されるなら、ウェ
ブサーバをまかなうのに 32MB 程度のネットワークバッファが必要
になります。経験的に有用な値は、それを 2 倍したものなので、
32MBx2 = 64MB/2K = 32768 になります。
本文書、および他の文書は https://download.freebsd.org/ftp/doc/ からダウンロードできます。
FreeBSD に関する質問がある場合には、
ドキュメント を読んだ上で
<questions@FreeBSD.org> まで (英語で) 連絡してください。
本文書に関する質問については、
<doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。