Sun Java System Application Server Enterprise Edition 8.2 パフォーマンスチューニングガイド

ファイル記述子

ファイル記述子の数をデフォルト値よりも増やす必要がある場合があります。ファイル記述子の数を増やすと、サーバーが高負荷時でもソケットを開くことができるようになり、クライアントから受け取る要求の処理が中止されなくなります。

まず、次のコマンドを使用して、ファイル記述子のシステム制限を確認します。

cat /proc/sys/fs/file-max
8192

現在の制限は 8192 と示されています。これを 65535 に増やすには、次のコマンドを root として実行します。

echo "65535" > /proc/sys/fs/file-max

システムを再起動してもこの値を維持するには、これを /etc/sysctl.conf に追加し、許可されるオープンファイルの最大数を指定します。

fs.file-max = 65535

注意: このパラメータは proc.sys.fs.file-max ではありませんので、間違えないようにしてください。

sysctl を使用して変更できる使用可能パラメータを一覧表示するには、次のコマンドを使用します。

sysctl -a

sysctl.conf ファイルから新しい値を読み込むには、次のコマンドを使用します。

sysctl -p /etc/sysctl.conf

シェルあたりの制限値を確認および変更するには、次のコマンドを使用します。

limit

次のように出力されます。

cputime         unlimited
filesize        unlimited
datasize        unlimited
stacksize       8192 kbytes
coredumpsize    0 kbytes
memoryuse       unlimited
descriptors     1024
memorylocked    unlimited
maxproc         8146
openfiles       1024

openfilesdescriptors には、1024 の制限値が示されています。全ユーザーを対象にこの制限値を 65535 に増やすには、root として/etc/security/limits.conf を編集し、nofile 設定 (ファイル数) エントリを変更または追加します。

*         soft    nofile                     65535
*         hard    nofile                     65535

*」の文字は、すべてのユーザーを示すワイルドカードです。代わりに特定のユーザー ID を指定することもできます。

次に、/etc/pam.d/login を編集し、次の行を追加します。

session required /lib/security/pam_limits.so

Red Hat ではさらに、/etc/pam.d/sshd を編集し、次の行を追加する必要があります。

session required /lib/security/pam_limits.so

多くのシステムでは、ここまでの手順で十分です。残りの手順を実行する前に、通常のユーザーとしてログインし、結果を試してください。プラグイン可能認証モジュール (PAM) およびセキュアシェル (SSH) の設定方法によっては、残りの手順は不要な場合があります。