[転送] PHP-FPM 高負荷チップ
?
http://www.187299.com/archives/category/nginx/page/4 にリダイレクトします
http://www.zhiyuanjun.net/?p=9
Nginx は高い同時実行性を備えているため、オンライン エージェント プログラムを実行するように Nginx+php-fpm を構成しました。これは Zhang Yan の記事に従って構成されましたが、最初の構成では正常に実行されました。しばらく実行すると、Web サイトが開くのが非常に遅くなります。Web サイトを開いた後、入力ボックスにアクセスする Web サイトを入力するのも非常に遅くなります。 Webサイトが開くのが遅い場合、SSH端末でのコマンド入力も遅いです。コンピュータ室のネットワーク速度の問題と思われますが、sshが入ると
となります。w3m www.example.com
これも開くのが遅いため、コンピューター室のネットワーク速度の問題は基本的に除外できます。
Web サイトを開くのが遅い場合は、サーバーを再起動すると、
を使用すると高速になることがわかりました。/usr/local/webserver/php/sbin/php-fpm restart
fastcgi を再起動すると高速になります。これをスケジュールされたタスクに追加して 1 時間ごとに再起動するのが最善です。これにより、基本的に Web サイトが遅くなることがなくなりますが、結局のところ、これは解決策ではありません。 。
nginx.log と php-fpm.log を確認し、それらのエラーに基づいて上記の記事をいくつか見つけ、主に 2 か所を修正して最終的に問題を解決しました。 🎜>問題:
/usr/local/webserver/php/etc/php-fpm.conf ファイルで定義されているオープン ファイル記述子の制限数が
しかし、コマンド ulimit -n を使用して確認すると、1024 個しかないことがわかりました
ulimit -SHn 51200
を追加しました
解決策:
vi? /etc/security/limits.conf
*?????? nofile? 51200
2.
コマンド
を使用します。
netstat -np grep 127.0.0.1:9000 |wc -l
100 個以上しかないことがわかりました
解決策:
サーバーのメモリに応じて、PHP FastCGI サブプロセスの数を 100 以上に調整できます。
4G メモリを搭載したサーバーでは、200 あれば十分です。サーバーは8Gです。PHPを入れます。FastCGIの子プロセスの数は300に調整されています
vi /usr/local/webserver/php/etc/php-fpm.conf
max_children を 300 に変更します
サーバーを再起動すると、Web サイトがすぐに開き、安定します。
FastCGI 経由で PHP-FPM を使用して高負荷の Web サイトを実行する場合は、次のヒントが役立つ場合があります: )
高負荷の Web サイトで PHP-FPM を使用して FastCGI を管理する場合、これらのヒントは次のとおりです。あなたに役立ちます:)
1. PHP のモジュールのコンパイルはできるだけ少なく、シンプルが最適 (高速)。
1. PHP のモジュールのコンパイルはできるだけ少なく、シンプルが最適 (高速)。
2. PHP FastCGI の子の数を 100 以上に増やします。 4G メモリ サーバーでは十分です 注: 私の 1g テスト マシンでは、64 が最適な値を取得するためにストレス テストを使用することをお勧めします
3. ソケットを使用して FastCGI に接続すると、Linux オペレーティング システムを /dev/shm に配置できます注: /dev/shm はメモリ ファイル システムであるため、php-fpm.cnf に
# echo 'ulimit -HSn 65536' >> /etc/profile# echo 'ulimit -HSn 65536 >> /etc/rc.local
# source /etc/profile
4. Linux カーネルによって開かれるファイルの数を増やすには、次のコマンドを使用できます ( root アカウント)
echo 'ulimit -HSn 65536' >> /etc/profile
echo 'ulimit -HSn 65536' >> /etc/rc.local
source /etc/profile
注: /etc/rc.local を変更し、ulimit -SHn 51200
を追加しています。
# vi /path/to/php-fpm.confFind “ 6. eAccelerator、XCache などの PHP コード アクセラレータを使用し、Linux では「cache_dir」を /dev/shm
1024 を 4096 以上の数値に変更します。
PHP-FPM を再起動します。
5. PHP-FPM のオープン ファイル記述子の制限を増やします:
# vi /path/to/php- fpm.conf
「
1024 を 4096 以上に変更します。
PHP-FPM を再起動します。
に設定します。