Linux コンピューター上でファイル・ハンドル数を増やす

製品パフォーマンスを最適にするため、ファイル・ハンドル数を、デフォルトの 1024 ハンドルより大きくします。

重要: 製品で作業を行う前に、ファイル・ハンドルの数を増やします。 ほとんどの製品は、プロセス当たりのデフォルト限度数である 1024 個よりも多くのファイル・ハンドル使用します。 この変更はシステム管理者が行う必要があります。
以下のステップを正しく完了するようにしてください。この手順を正しく完了しなかった場合、コンピューターは始動しません。

Linux コンピューター上のファイル・ハンドル数を増やすには、以下の手順を完了します。

  1. root としてログインします。root アクセス権限がない場合は、継続する前に取得する必要があります。
  2. etc ディレクトリーに移動します。
    重要: 次のステップでファイル・ハンドルの数を増やす場合は、 コンピューター上に空の initscript ファイルを残さない でください。 残した場合、次回コンピューターを再始動したときに、始動しなくなります。
  3. etc ディレクトリー内の initscript ファイルを、vi エディターを使用して編集します。 この ファイルがない場合は、vi initscript と入力して作成してください。
  4. 最初の行に、ulimit -n 4096 と入力します。 ここでのポイントは、4096 という数は、ほとんどの Linux コンピューターでのデフォルトである 1024 よりも十分に大きな数値であるということです。
    重要: ハンドル数を大きく設定しすぎるとシステム全体のパフォーマンスに悪い影響がある可能性があるため、大きくしすぎないでください。
  5. 2 行目に eval exec "$4" と入力します。
  6. ステップ 4 と 5 を完了したことを確認した後、ファイルを保存して閉じます。
  7. オプション: etc/security ディレクトリーの limits.conf ファイルを変更することにより、ユーザーまたはグループが使用できるハンドルの数を制限します。 SUSE Linux Enterprise Server (SLES) バージョン 9 と Red Hat Enterprise Linux バージョン 4.0 には、デフォルトでこのファイルがあります。 このファイルがない場合は、前の手順のステップ 4 でもっと少ない数 (例えば 2048) を使用することを考慮します。 これを行うのは、プロセスごとに許容されるオープン・ファイル数について、ほとんどのユーザーがある程度低い限度を持つようにするためです。 ステップ 4 である程度低い数値を使用した場合は、これを行うことはそれほど重要ではありません。ただし、以前のステップ 4 で高い数値を設定し、limits.conf ファイルに限度を設定しなかった場合、コンピューターのパフォーマンスはかなり悪くなります。
    以下のサンプルの limits.conf ファイルは、すべてのユーザーを制限した上で、その後に他の異なる限度を設定します。 このサンプルでは、ステップ 4 でハンドルを 8192 に設定したと想定しています。

    *      soft nofile 1024
    *      hard nofile 2048
    root    soft nofile 4096
    root    hard nofile 8192
    user1   soft nofile 2048
    user1 hard nofile 2048

    この例では、* ですべてのユーザーの制限を最初に設定していることに注目してください。 これらの限度は、 その後の限度よりも低くなっています。root ユーザーが使用できる許容ハンドル数はこれより高くなり、user1 が使用できる数はそれら 2 つの間になります。変更を行う前に、limits.conf ファイルに含まれている文書を必ず読んで理解しておいてください。