ホームページ  >  記事  >  バックエンド開発  >  php-fpmの最適化方法を詳しく解説

php-fpmの最適化方法を詳しく解説

黄舟
黄舟オリジナル
2017-07-27 10:24:521501ブラウズ

php-fpmの最適化方法

php-fpmには2つの方法があります。1つは、増減せずに指定した数のphp-fpmを開く方法です。プロセス開始後、リクエスト量が多くなるとphp-fpmのプロセス数を動的に上限まで増やし、アイドル状態の場合はアイドル状態のプロセス数を自動的に下限まで解放します。
これら 2 つの異なる実行方法は、サーバーの実際のニーズに応じて調整できます。

使用するパラメーターには、pm、pm.max_children、pm.start_servers、pm.min_spare_servers、および pm.max_spare_servers があります。

pm はその方法を使用することを意味し、静的または動的の 2 つの値から選択できます。

次の 4 つのパラメータは次のことを意味します:



pm.max_children: 静的モードで開かれる php-fpm プロセスの数。動的モードでは、php-fpm プロセスの最大数が制限されます (ここでは pm.max_spare_servers の値に注意してください)。 pm.max_children 以下のみを指定できます)

pm.start_servers: 動的モードで開始する php-fpm プロセスの数。
pm.min_spare_servers: 動的モードでアイドル状態にある php-fpm プロセスの最小数。
pm.max_spare_servers: 動的モードでアイドル状態にある php-fpm プロセスの最大数。

dm が static に設定されている場合、pm.max_children パラメーターのみが有効になります。システムは、設定された数の php-fpm プロセスを開きます。

dm が動的に設定されている場合、4 つのパラメータすべてが有効になります。 php-fpm の実行が開始されると、システムは pm.start_servers php-fpm プロセスを開始し、システムのニーズに応じて pm.min_spare_servers と pm.max_spare_servers の間で php-fpm プロセスの数を動的に調整します。

それでは、どの実行方法がサーバーにとってより良いのでしょうか?実際、Apache と同様、実行中の PHP プログラムでは実行後に多かれ少なかれメモリ リークが発生します。これは、php-fpm プロセスが最初は約 3M のメモリしか占有せず、一定期間実行すると 20 ~ 30M に増加する理由でもあります。 (www. Script School)

したがって、動的方法は冗長なプロセスを終了し、一部のメモリをリサイクルして解放できるため、メモリの少ないサーバーまたは VPS で使用することをお勧めします。具体的な最大量はメモリ/20M に基づいて取得されます。

たとえば、512M VPS の場合、pm.max_spare_servers を 20 (512*0.8/20) に設定することをお勧めします。 pm.min_spare_servers については、サーバーの負荷に応じて 5 ~ 10 の間で設定することをお勧めします。

また、比較的大きなメモリを備えたサーバーの場合、静的に設定すると効率が向上します。

php-fpmプロセスを頻繁に切り替えると遅延が発生するため、メモリが十分に大きい場合は静的効果が向上します。メモリ/30Mに応じた数量も取得できます。
たとえば、2 GB のメモリを備えたサーバーは 50 に設定でき、4 GB のメモリを備えたサーバーは 100 に設定できます。

たとえば、512M vps の場合、設定パラメータは次のとおりです:


コード例:

pm=dynamic
pm.max_children=20
pm.start_servers=5
pm.min_spare_servers=5
pm.max_spare_servers=20

はメモリを最も節約し、実行効率を向上させることができます。

以上がphp-fpmの最適化方法を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。