nginx + php7.0-fpmでこの問題が発生しています。nginx php-fpmの設定が子供の制限を打つ
他のサービスがインストールされていない純粋なPHPサーバでテストが行われます。
次の警告が表示されます。
WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 16 children, there are 0 idle, and 35 total children
そして、サーバーの速度が大幅に低下します。
私はAWS t2.medium instance
- 2vCPUと4GB RAMを使用しています。
私php7.0-fpm/www.conf
は私が単に要求へ{"m":"OK"}
を返信どのテストするために使用していlaravelアプリケーションを持っている
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 10
pm.max_spare_servers = 20
pm.max_requests = 500
のようなルックスを設定します。 >https://ghostbin.com/paste/528tw
そして、私はhtop
を使用してCPU使用率を監視 -
ab
テストから
apache2-utils
ab -n 1000 -c 50 https://mytestserver.com/
レスポンスを使用していることをテストしました。
ab
テスト中に2つのCPU使用率が100%速く低下しました。ただし、メモリの使用量は400MB
です。
なぜCPUを使いすぎているのですか? php-fpmからWARNINGを取得するにはどうすればよいですか?
私は間違っていますか?私を案内してください。
ありがとうございました。
私はあなたがCPUコアよりずっと多くの子供を産むべきではないと思います。あなたは2つの仮想コアしか持っていません、私は2つの子サーバーを生成します。 – DanFromGermany
@DanFromGermany、これは午後からのものです。子サーバーを参照していますか? – moeseth
'nginx'は、PHPを処理するよりも要求を受け入れる方がずっと高速です。つまり、 'nginx'はリクエストが多すぎるPHPをフィードに送り、' fpm'はタイムリーにそれを処理できません。子供たちは忙しく、警告を受け取ります。あなたはCPUの限界にぶつかったので、修正することはできません。もしそうなら、それはあなたのサーバでPHPが動く速さです。このような状況が発生すると、そのWebサーバーは非常に高速であり、複数のサーバーを 'php-fpm'で起動すると、nginxはそれらの間で負荷を分散できます。それらの設定変数のいずれかを上げても何も起こりません。CPUコアと電源が足りなくなります。 – Mjh