ホームページ > バックエンド開発 > PHPチュートリアル > 【譲渡】PHP-FPM高負荷スキル

【譲渡】PHP-FPM高負荷スキル

WBOY
リリース: 2016-06-13 13:26:06
オリジナル
975 人が閲覧しました

[転送] 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 ファイルで定義されているオープン ファイル記述子の制限数が
51200
しかし、コマンド ulimit -n を使用して確認すると、1024 個しかないことがわかりました

/etc/rc.local に

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 に変更します
300

サーバーを再起動すると、Web サイトがすぐに開き、安定します。

FastCGI 経由で PHP-FPM を使用して高負荷の Web サイトを実行する場合は、次のヒントが役立つ場合があります: )
高負荷の Web サイトで PHP-FPM を使用して FastCGI を管理する場合、これらのヒントは次のとおりです。あなたに役立ちます:)

1. PHP のモジュールのコンパイルはできるだけ少なく、シンプルが最適 (高速)。
1. PHP のモジュールのコンパイルはできるだけ少なく、シンプルが最適 (高速)。

2. PHP FastCGI の子の数を 100 に増やします。場合によっては 200 まで増やしても問題ありません。(4GB メモリ サーバーの場合);

2. PHP FastCGI の子の数を 100 以上に増やします。 4G メモリ サーバーでは十分です 注: 私の 1g テスト マシンでは、64 が最適な値を取得するためにストレス テストを使用することをお勧めします

3. SOCKET PHP FastCGI を使用し、Linux 上の /dev/shm に配置します。

3. ソケットを使用して FastCGI に接続すると、Linux オペレーティング システムを /dev/shm に配置できます注: /dev/shm はメモリ ファイル システムであるため、php-fpm.cnf に /tmp/nginx.socket を設定します。メモリに入れればすぐに動作します

4. 次のコマンドを使用して、Linux の「最大オープン ファイル」を増やします (root である必要があります)。

# 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

を追加しています。

5. PHP-FPM オープン ファイルの説明 rlimit を増やします:

# vi /path/to/php-fpm.confFind “1024"
1024 を 4096 以上の数値に変更します。
PHP-FPM を再起動します。
5. PHP-FPM のオープン ファイル記述子の制限を増やします:
# vi /path/to/php- fpm.conf
1024」を検索します。
1024 を 4096 以上に変更します。
PHP-FPM を再起動します。

6. eAccelerator、XCache などの PHP コード アクセラレータを使用し、Linux では「cache_dir」を /dev/shm
に設定します。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート