Linuxシステムで「開いているファイルが多すぎます」などのメッセージが表示される場合があります。これは、サーバーが開いているファイルの最大数の制限に達したことを意味します。
Linuxには、2種類の制限があります
(A)ハードリミット :スーパーユーザー/ルートによって設定できるユーザーに許可される最大制限。
(B)ソフト制限 :ユーザーに許可されている現在の制限。ユーザーはハード制限まで増やすことができます。
現在の制限を確認してください:
ulimitコマンドを使用して、ユーザーに現在許可されている制限を確認できます。以下は、ハードとソフトの制限を確認するためのコマンドです。
ulimit -Sn # Check soft limit
ulimit -Hn # Check hard limit
現在のセッションの制限を増やす:
セッションの制限を増やしたい場合は、以下のコマンドを使用できます。
ulimit -n 250000
ユーザーごとの制限を増やす:
- 開いているファイルにユーザーごとの制限を設けることができます。以下のコマンドを使用してlimits.confを編集します。
sudo nano /etc/security/limits.conf
- 要件に応じてユーザーの値を変更し、ファイルを保存します。
- 制限の変更が完了したら、以下のコマンドを使用してpam_limitsを有効にします。
sudo nano /etc/pam.d/common-session
- 次の行を追加します:
session required pam_limits.so
システム全体の制限を増やす:
システム全体の制限を増やすと、システム全体でファイルを開くことができます。特定のユーザー制限は、システム全体の制限を超えることはできないことに注意してください。
- システム全体の制限を増やすこともできます。これを行うには、sysctl構成ファイルを編集します。
# nano /etc/sysctl.conf
- 次に、以下の行を追加します
# fs.file-max = 3000000
- 以下のコマンドを実行して変更を保存します。
# sysctl -p