Wordpress は最近 Alibaba Cloud に移行されました。私のサーバーはクラウドサーバーなので、ハードディスクとメモリが比較的小さいため、Linux コマンドで確認したところ、20 個以上の php-fpm プロセスが起動され、1G 近くのメモリを占有していることがわかりました。 、サーバー全体のメモリは 1.5 GB しかありませんが、php-fpm プロセスの数を最適化することでこの問題が解決され、さらに 600M のメモリが節約されました。php-fpm の最適化方法を皆さんと共有します。 php-fpmの最適化 1. php-fpm 最適化パラメータの概要 それらは、pm、pm.max_children、pm.start_servers、pm.min_spare_servers、pm.max_spare_servers です。 pm: 静的または動的の 2 つの値から選択する方法を示します。 古いバージョンでは、動的は Apache のようなものと呼ばれていました。このための設定ファイルの記述に注意してください。 次の 4 つのパラメータの意味は次のとおりです。 pm.max_children: 静的モードで開かれた php-fpm プロセスの数 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 が動的に設定されている場合、pm.max_children パラメータは無効になり、次の 3 つのパラメータが有効になります。 php-fpm の実行が開始されると、システムは pm.start_servers php-fpm プロセスを開始します。 次に、システムのニーズに応じて、pm.min_spare_servers と pm.max_spare_servers の間で php-fpm プロセスの数を動的に調整します 2. サーバー固有の構成 私たちのサーバーでは、どの実行方法がより良いでしょうか?実際、Apache と同様、実行中の PHP プログラムでは実行後に多かれ少なかれメモリ リークが発生します。 これは、php-fpm プロセスが最初は約 3M のメモリしか占有せず、一定期間実行すると 20 ~ 30M に増加する理由でもあります。 大きなメモリ (8G 以上など) を備えたサーバーの場合、静的 max_children を指定する方が実際にはより適切です。これにより、追加のプロセス数制御が必要なくなり、効率が向上します。 php-fpmのプロセスを頻繁に切り替えるとラグが発生するため、メモリに余裕がある場合はstatic機能をオンにした方が良いでしょう。数量はメモリ/30M に基づいて取得することもできます。たとえば、8GB メモリを 100 に設定することもできます。 そうすれば、php-fpm が消費するメモリを 2G ~ 3G で制御できます。メモリが 1G などわずかに小さい場合は、静的なプロセス数を指定する方がサーバーの安定性に役立ちます。 これにより、php-fpm が十分なメモリのみを取得し、他のアプリケーションに少量のメモリが割り当てられて使用されるようになり、システムがよりスムーズに実行されるようになります。 256M メモリの VPS など、メモリが少ないサーバーの場合、20M メモリに基づいて計算したとしても、10 個の php-cgi プロセスで 200M のメモリが消費され、システム クラッシュは正常なはずです。 したがって、php-fpm プロセスの数をできるだけ制御するように努め、他のアプリケーションが占有しているメモリを大まかに把握した後、静的に小さな数を割り当てるとシステムがより安定します。または、動的メソッドを使用します。 動的方法は冗長なプロセスを終了し、一部のメモリをリサイクルして解放できるため、メモリの少ないサーバーまたは VPS で使用することをお勧めします。具体的な最大量はメモリ/20M に基づいて取得されます。 たとえば、512M VPS の場合、pm.max_spare_servers を 20 に設定することをお勧めします。 pm.min_spare_servers については、サーバーの負荷に応じて設定することをお勧めします。たとえば、サーバーに PHP 環境のみが配置されている場合、より適切な値は 5 ~ 10 です。 このサーバー構成 1. 基本的なサーバー情報: ハードディスク: データディスク 30G、システムディスク 20G メモリ: 1.5G CPU:デュアルコア システム: CentOS 6.3 64 ビット 帯域幅: 独占 2M 2. デプロイされたアプリケーション Git、SVN、Apache、Tomcat、PHP、Nginx、Mysql、JDK 3. パラメータの最適化 午後 = ダイナミック pm.start_servers = 5 pm.min_spare_servers = 2 pm.max_spare_servers = 8 |