ファイル記述子の数をデフォルト値よりも増やす必要がある場合があります。ファイル記述子の数を増やすと、サーバーが高負荷時でもソケットを開くことができるようになり、クライアントから受け取る要求の処理が中止されなくなります。
まず、次のコマンドを使用して、ファイル記述子のシステム制限を確認します。
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
openfiles と descriptors には、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) の設定方法によっては、残りの手順は不要な場合があります。