ホームページ >バックエンド開発 >PHPチュートリアル >PHP 最適化のごった煮
PHP の最適化に関する記事では、効率的なコードの書き方を説明することがよくありますが、この記事では、この問題を別の角度から議論し、最適化の目的も達成できるように効率的な環境を構成する方法を説明することを目的としています。憂鬱なニュースは、大多数の PHP プログラマーがプールの値を無視していることです。ここで説明するプールは、データベース接続プールなどのことを指しますが、PHP では複数のプールを同時に起動できます。各プールは、互いの主権と領域の整合性を尊重しません。互いに内政干渉する。
-pool
メリットは何ですか?デフォルトでは、PHP では 1 つのプールのみが有効になっており、すべてのリクエストはこのプールで実行されます。特定のリクエストが混雑すると、プール全体が炎上する可能性があります。複数のプールが有効になっている場合は、リクエストを異なるプールに分類して実行できます。混雑などの状況が発生した場合にのみ影響します。これにより、障害の範囲が制御されます。
listen
Nginx と PHP は別のサーバーにデプロイできますが、実際のアプリケーションでは、ほとんどの人が同じサーバーにデプロイすることに慣れているため、2 つのオプションがあります: 1 つは TCP、もう 1 つはUnixソケットです。
pm
プロセス管理は、動的と静的に分けられます。動的モードでは通常、最初に少数のプロセスが開始され、その後リクエストの数に応じてプロセスの数がリアルタイムで調整されます。この利点はリソースの節約であることは明らかですが、もちろん欠点も明らかです。一度大量のリクエストが発生すると、システムはビジー状態になり、新しいプロセスを FORK する必要があり、必然的にパフォーマンスに影響します。同様に、静的モードでは十分な数のプロセスを一度に FORK し、リクエストの量に関係なく変更されません。動的モードと比較して、静的モードはより多くのリソースを消費しますが、同時リクエストが多い場合でも高価な FORK を実行する必要はありません。
pm.max_children
PHP プロセスはいくつ起動するのが適切ですか?自分自身の答えを与える前に、次の記事を読んでください:
php-fpm の max_chindren に関するいくつかの誤解
どのくらいが適切ですか?この問題を明確にするには、CPU に注意を払うだけでなく、メモリの状況にも注意を払う必要があります: