“too many open files(24)”というエラーが発生した場合、アプリケーション/コマンド/スクリプトはlinuxで許可されている最大開 次のように開いているファイルの制限を増やす必要があります。
制限を増やす
ユーザーごとの制限
ファイルを開く: /etc/security/limits.conf
最後に向かって次の貼り付け:
* hard nofile 500000* soft nofile 500000root hard nofile 500000root soft nofile 500000
500000 かなりの数です。 私は最大制限が何であるかはわかりませんが、999999(Six-9)は私が覚えている限り一度私のために働いていました。
ファイルを保存したら、ログアウトして再度ログインする必要がある場合があります。
pam-limits
デーモンプロセスの制限を変更するための追加のステップが必要であることを多くの場所で読みました。 私はまだ従う必要はありませんでしたが、上記の変更があなたのために働いていない場合は、これを試してみることができます。
を開く/etc/pam.d/common-session
次の行を追加します:
session required pam_limits.so
システム全体の制限
上記のユーザー制限よりも高い値を設定します。
オープン/etc/sysctl.conf
以下を追加:
fs.file-max = 2097152
実行:上記の
sysctl -p
は、システム全体で開いたままにできるファイルの”合計”数を増やします。
新しい制限の確認
次のコマンドを使用して、ファイル記述子の最大制限を確認します:
cat /proc/sys/fs/file-max
ハード制限
ulimit -Hn
ソフト制限
ulimit -Sn
rootとしてログインしている場合:
他のユーザーの制限をチェック
www-data
をlinuxユーザー名で置き換えてください。:
su - www-data -c 'ulimit -aHS' -s '/bin/bash'
実行中のプロセスの制限を確認する:
プロセスid(PID)を検索します):
ps aux | grep process-name
XXXがPIDであると仮定し、次のコマンドを実行して制限を確認します:
cat /proc/XXX/limits