

/etc/pam.d/loginというpamモジュールを呼び出して検証を行います。/etc/pam.d/loginの設定において、デフォルトではsystem-authモジュールをインポートして認証を行い、system-authモジュールはデフォルトでpam_limits.soモジュールをインポートして認証を行います。system-authのデフォルト設定は下図のとおりです。

pam_limits.soモジュールの主な機能はユーザーのセッションの過程で各種システムリソースの使用状況を制限することです。デフォルトではこのモジュールの設定ファイルは/etc/security/limits.confであり、この設定ファイルはユーザーが使用可能な最大ファイル数、最大スレッド数、最大メモリなどのリソース使用量を規定しています。パラメータの説明は下表のとおりです。パラメータ | 説明 |
soft nofile | 開くことができるファイルディスクリプタの最大数(ソフトリミット)。 |
hard nofile | 開くことができるファイルディスクリプタの最大数(ハードリミット)。この設定値を超えることはできません。 |
fs.file-max | システムクラスにおいて開くことができるファイルハンドラ(カーネル中のstruct file)の数量。システム全体に対する制限であり、ユーザーに対してのものではありません。 |
fs.nr_open | 1つのプロセスで割り当て可能な最大ファイルディスクリプタ数(fd個数)。 |
/etc/security/limits.conf中のrootユーザーが開くことのできるファイルディスクリプタの最大数の設定にエラーがあることによる可能性があります。 正しい設定はsoft nofile ≤ hard nofile ≤ fs.nr_openの関係を満たしていなければなりません。soft nofile、hard nofileおよびfs.nr_openの値がsoft nofile ≤ hard nofile ≤ fs.nr_openの関係を満たしているかどうかを確認します。soft nofileおよびhard nofileの値を確認します。/etc/security/limits.conf

fs.nr_openの値を確認します。sysctl -a 2>/dev/null | grep -Ei "file-max|nr_open"

/etc/security/limits.confファイルを修正し、次の設定をファイルの末尾に追加または修正します。root soft nofile:100001root hard nofile:100002/etc/sysctl.confファイルを修正し、次の設定をファイルの末尾に追加または修正します。soft nofile ≤ hard nofile ≤ fs.nr_openの関係を満たしている場合は、この手順は必須ではありません。システムの最大制限が不足している場合に再調整することができます。fs.file-max = 2000000fs.nr_open = 2000000sysctl -p
フィードバック