7

私はnginxをフロントエンドとして実行し、php-fpmをバックエンドとして実行してphpファイルを処理します。/var/log/php-fpm/error.logに「開いているファイルが多すぎます」というエラーが表示されます。ハードとソフトのulimitを65535に増やしましたが、問題を解決できないようです。

/var/log/php-fpm/error.log

[17-Sep-2012 14:43:51] ERROR: failed to prepare the stderr pipe: Too many open files (24)
[17-Sep-2012 14:43:52] ERROR: failed to prepare the stderr pipe: Too many open files (24)

ulimit -n

65535

/etc/php-fpm/www.conf

rlimit_files = 65535
4

1 に答える 1

4

lsof (開いているファイルのリスト)で確認でき ます。ほとんどのLinuxディストリビューションにはデフォルトでこれが含まれていないため、おそらくインストールする必要があります。それはあなたにそれらの開いているファイルがどれであるか、そしてそれを所有するプロセスについての見解を与えるはずです(それであなたはphpのためにgrepすることができます)。lsofを実行する| それらを数えるためにwc-l 。本当にそんなにオープンなのですか?あるいは、エラーはもっと深い何かの症状のようなものかもしれません。あなたがそれらが何であるかを知っているなら、おそらくそれは理由の手がかりを与えるでしょう...

STDERRについて言及しているという事実を見ると、おそらく広義のエラーに関連しています(php-fpmのエラー構成パラメーターでしょうか?)

また、UNIXソケットとtcpソケットのどちらを使用しているかを確認し、UNIXソケットがより高速に動作すると言われているBSDを使用していない限り、tcpオプションを試してください。

于 2012-09-19T21:16:24.927 に答える