目次
ondemand
設定を増やす/調整しようとするかもしれませんが、ServerFaultの投稿で説明されている人と同じエラーが表示されます。この場合、ネットワークトラフィックはトラフやピークで大きく変動するため、pm ondemandが低すぎて正しく調整することは困難です。通常のアドバイスは、dynamicを使用することです。しかし、これはさらに悪いことです。トラフィックがほとんどまたはまったくない場合、
プロセスマネージャーは、固有のオーバーヘッドのためにスループットを制限する可能性があります。システムを理解し、サーバーの最大容量に一致するようにPHP-FPMプロセスを設定します。
PHP-FPMは私のウェブサイトのパフォーマンスをどのように改善しますか?
php-fpmのpm static構成とは何ですか?パフォーマンスにどのように影響しますか?
php-fpmのパフォーマンスを監視する方法は?
PHP-FPMを使用するためのベストプラクティスは何ですか?
ホームページ バックエンド開発 PHPチュートリアル PHP-FPMチューニング:' PM static'を使用最大パフォーマンス用

PHP-FPMチューニング:' PM static'を使用最大パフォーマンス用

Feb 09, 2025 am 08:25 AM

PHP-FPM tuning: Using 'pm static' for Max Performance

キーポイント

    適切なメモリサーバーの場合、PHP-FPMの
  • 設定により、スループットが高く、低下が低くなります。この設定により、PHP-FPMプロセスは常に最大容量を維持することができ、新しいプロセスを生成することなくトラフィックピークへの迅速な応答を可能にします。 pm static
  • の使用が不十分なメモリまたはキャッシュストレスの問題を避けるために、慎重な調整が必要です。 pm static CPUのパフォーマンスに影響を与えることなく、サーバーが処理できるPHP-FPMプロセスの最大数に従って設定する必要があります。 pm.max_children 複数のPHP-FPMプールまたは低メモリを備えたサーバーの場合、より適している場合があります。これらの設定は、現在の負荷に基づいてサブプロセスの数を調整することでメモリを保存できますが、トラフィックの変動が発生しているときにオーバーヘッドの問題を引き起こす可能性もあります。
  • PHP-FPM構成の定期的な監視とチューニングは、選択した設定に関係なく最適なパフォーマンスに不可欠です。 PHP-FPMプロセスの平均サイズはサーバーごとに異なり、手動で調整し、サーバーのリソースとトラフィックパターンを明確に理解する必要があります。 pm dynamic pm ondemand
  • この記事の元の原稿は、もともと編集なしでhaydenjames.ioで公開され、著者の許可を得てここで再現されました。

高度なスループット、低レイテンシ、より安定したCPUおよびメモリの使用に最適なPHP-FPMを最適に設定する方法をすばやく学びましょう。デフォルトでは、ほとんどの設定はPM(プロセスマネージャー)PHP-FPMの文字列を動的に設定し、通常、使用可能なメモリ問題が発生した場合はOnDemandをお勧めします。ただし、PHP.NETのドキュメントに基づいてこれら2つの管理オプションを比較し、トラフィックの高い設定のお気に入りのオプションを比較しましょう。

:子プロセスの数は、次の指示に従って動的に設定されます:

  • pm = dynamic pm.max_childrenpm.start_servers:必要に応じてリクエストに応じてプロセスが生成されます。これは、サービスから始まる動的とは異なりますpm.min_spare_serverspm.max_spare_servers
  • pm = ondemand:子どものプロセスの数はpm.start_serversによって固定されています。
  • pm = staticpm.max_children詳細については、グローバルPHP-FPM.CONFディレクティブの完全なリストを参照してください。
PHP-FPMプロセスマネージャー(PM)とCPUFREQレギュレーターの類似性

これは少し話題から外れているように見えるかもしれませんが、PHP-FPM Tweakedトピックに関連付けたいと思います。 OK、ラップトップ、仮想マシン、専用サーバーなど、ある時点でCPU速度が遅いことがあります。 CPU周波数のスケーリングを覚えていますか? (CPUFREQレギュレーター。)これらの設定は、

nixシステムとWindowsシステムの両方で使用でき、

ondemand

パフォーマンス*からCPUレギュレーターの設定を変更することにより、パフォーマンスとシステムの応答性を向上させることができます。今回は、説明を比較して類似点を探しましょう。

  • Governor = ondemand:現在の負荷に応じてCPU周波数を動的にスケーリングします。最高の周波数にジャンプしてから、アイドル時間が増加するにつれて周波数を減らします。
  • Governor = conservative:現在の負荷に応じて周波数を動的にスケーリングします。 OnDemandよりもスケーリング周波数がスムーズです。
  • Governor = performance:常に最大周波数でCPUを実行します。

詳細については、CPUFREQレギュレーターオプションの完全なリストを参照してください。

類似性に気づきましたか?最初にこの比較を使用したいと思います。記事を書く最良の方法を見つけることを目標に、PHP-FPMのpm staticを最初の選択肢として推奨します。

CPUレギュレーターの場合、パフォーマンス設定は、サーバーCPUの制限にほぼ完全に依存するため、パフォーマンス設定はかなり安全なパフォーマンスブーストです。他の要因は、熱、バッテリー寿命(ラップトップ)、CPU周波数を100%に永続的に設定するなどの副作用にすぎません。パフォーマンスに設定すると、実際にCPUの最速のセットアップです。たとえば、Raspberry Piの

設定について読んでください。これにより、RPIボードはパフォーマンスレギュレーターの使用を強制します。また、CPUクロック速度が低いため、パフォーマンスの改善がより顕著になります。 force_turbo

使用

サーバーの最大パフォーマンスを達成pm static

php-fpm

設定は、サーバーのメモリの量に大きく依存します。基本的に、サーバーメモリが不十分な問題に問題がある場合は、pm staticまたはpm ondemandがより良い選択かもしれません。一方、十分なメモリを利用できる場合は、サーバーの最大容量にdynamicを設定することにより、PHPプロセスマネージャー(PM)のオーバーヘッドのほとんどを回避できます。言い換えれば、計算を行う場合、メモリの可用性やキャッシュストレスの問題を作成せずに実行できるPHP-FPMプロセスの最大数に設定する必要があります。また、CPUを圧倒し、多くの処理されていないPHP-FPM操作を引き起こすには高すぎないように設定しないでください。 pm static pm.static

上記の画像では、このサーバーの

pm = staticは、最大約10GBの32GBのインストールメモリを使用しています。自己解釈の強調表示された列に注意してください。このスクリーンショット中に、Googleアナリティクスには約200人の「アクティブユーザー」がありました(最後の60秒)。このレベルでは、PHP-FPMの子どもプロセスの約70%がまだアイドル状態です。これは、PHP-FPMが常に現在のトラフィックに関係なくサーバーリソースの最大容量に設定されることを意味します。アイドルプロセスはオンラインにとどまり、PMが子どものプロセスを生み出してから閉じるのを待つのではなく、トラフィックピークを待ってすぐに応答します。これは、PHPメモリが漏れない生産サーバーであるため、pm.max_children = 100を非常に高く設定しました。現在および将来のPHPスクリプトに110%の信頼性がある場合は、静的でpm.process_idle_timeoutを使用できます。ただし、スクリプトを定期的に再起動することをお勧めします。ポイントはPMのオーバーヘッドを避けることであるため、リクエストの数をより高い数に設定します。たとえば、少なくともpm.max_requestsは、pm.max_requests = 0数とリクエストに応じて、1秒間です。 pm.max_requests = 1000 このスクリーンショットは、「u」(ユーザー)オプションとPHP-FPMユーザーの名前でLinuxpm.max_childrenを使用してフィルタリングされます。表示されるプロセスの数は約50(計算なし)ですが、基本的に

は、ターミナルウィンドウに合ったトップレベルの統計を表示します。この場合、%CPUでソートされています。 100個のPHP-FPMプロセスをすべて表示するには、次のコマンドを使用できます。

topいつtop

を使用して、次のようなエラーに気付いたかもしれません。
<code>top -bn1 | grep php-fpm</code>
ログイン後にコピー

設定を増やす/調整しようとするかもしれませんが、ServerFaultの投稿で説明されている人と同じエラーが表示されます。この場合、ネットワークトラフィックはトラフやピークで大きく変動するため、pm ondemandが低すぎて正しく調整することは困難です。通常のアドバイスは、dynamicを使用することです。しかし、これはさらに悪いことです。トラフィックがほとんどまたはまったくない場合、

はアイドルプロセスを0にシャットダウンし、その後、トラフィックが変動するのと同じくらいのオーバーヘッドの問題になります。もちろん、もちろん、あなたはアイドルタイムアウトは非常に高く設定されています...この場合、

highpm dynamicのみを使用する必要があります。

ただし、複数のPHP-FPMプールがある場合は、PM dynamic、特にondemandはリソースを節約できます。たとえば、複数のcPanelアカウントまたは異なるプールの下で複数のWebサイトをホストします。たとえば、100個以上のCPANELアカウントと約200のドメイン名を持つサーバーがあります。ウェブサイトの3分の2以上がトラフィックをほとんど持っていないため、pm.staticのみをうまく実行できます。これは、すべての子プロセスがシャットダウンされ、多くのサーバーメモリを保存することを意味します。ありがたいことに、CPANELの開発者はこの問題を解決しましたが、今ではデフォルトでdynamicになりました。以前は、デフォルトでondemandを使用しているため、IDLE CPANEL PHP-FPMプール/アカウントでもPHP-FPMが共有サーバー上のオプションになりました。良いトラフィックを受け取った場合、多数のPHP-FPMプール(共有ホスト)を備えたサーバーでホストする可能性は低いです。 ondemand ondemand結論dynamic PHP-FPMでは、大量のトラフィックの提供を開始すると、PHP-FPMの

および

プロセスマネージャーは、固有のオーバーヘッドのためにスループットを制限する可能性があります。システムを理解し、サーバーの最大容量に一致するようにPHP-FPMプロセスを設定します。

または

に基づいた最大使用設定から始めて、メモリとCPUが圧倒されることなく処理できるポイントまで増加します。 ondemandを使用することは、すべてがメモリに存在するため、時間の経過とともにトラフィックピークがCPUをピークにし、サーバーの負荷とCPUの平均がよりスムーズになるためです。 PHP-FPMプロセスの平均サイズはWebサーバーによって異なり、手動で調整する必要があるため、より自動化されたオーバーヘッドプロセスマネージャー(dynamicおよびpm dynamic ondemandpm.max_children更新:A/Bベンチマーク比較チャートを追加しました。 PHP-FPMプロセスがメモリに存在することは、パフォーマンスを改善するのに役立ちますが、メモリの使用量を増やして待機状態に保ちます。設定に最適なポイントを見つけてください。 pm staticdynamic ondemand

PHP-FPM調整に関するFAQ(FAQ) PHP-FPMとは何ですか?サーバーのパフォーマンスにとってなぜそれが重要なのですか?

PHP-FPMまたはFASTCGI Process Managerは、特に忙しいサイトでは、あらゆるサイズのサイトに役立つ追加機能を備えた別のPHP FastCGI実装です。サーバーのパフォーマンスは、ワーカープールを活用することにより、サーバーが同時訪問者からのより多くのリクエストを処理できるため、重要です。これらのプロセスは、PHPファイルを解析し、動的コンテンツを生成し、クライアントに提供する責任があります。これらのプロセスを効果的に管理することにより、PHP-FPMはサーバーのパフォーマンスとスケーラビリティを大幅に向上させることができます。 PHP-FPM tuning: Using 'pm static' for Max Performance

PHP-FPMは私のウェブサイトのパフォーマンスをどのように改善しますか?

PHP-FPMは、PHPプロセスを効果的に管理することにより、Webサイトのパフォーマンスを向上させます。主なプロセスを使用して、PHPスクリプトを処理する複数の子プロセスを制御します。これにより、アイドルプロセスを終了し、必要に応じて新しいプロセスを生成できるため、サーバーリソースを効率的に使用できます。さらに、PHP-FPMはOpCodeキャッシュをサポートします。これは、共有メモリにプリコンパイルされたスクリプトバイトコードを保存することでPHPの実行を大幅に高速化でき、PHPがすべてのリクエストでスクリプトをロードして解析する必要性を排除できます。

php-fpmのpm static構成とは何ですか?パフォーマンスにどのように影響しますか?

pm staticphp-fpmでは、

構成により、子プロセスの数を固定数に設定します。これは、現在のサーバーの負荷に関係なく、着信要求を提供する準備ができている特定の数のプロセスが常にあることを意味します。これは、新しいプロセスを生成する必要がないため、高負荷の下でより良いパフォーマンスにつながる可能性があります。ただし、これらのプロセスが必要でない場合でも、常に実行されているため、メモリ使用量が増える可能性もあります。

最大のパフォーマンスのためにPHP-FPMを調整する方法は?

pm最大のパフォーマンスのためにPHP-FPMの調整には、複数の構成設定を調整することが含まれます。これらの設定には、使用するプロセスマネージャーを決定するpm.max_children設定と、子プロセスの最大数を設定するpm.start_servers設定が含まれます。その他の重要な設定には、開始されたサーバーの数、アイドルサーバーの最小数、およびサーバーの最大数をそれぞれ制御するpm.min_spare_serverspm.max_spare_servers

が含まれます。サーバーのリソースとトラフィックパターンに一致するようにこれらの設定を調整すると、パフォーマンスが大幅に向上する可能性があります。

PHP-FPMの一般的な問題は何ですか?どうすればトラブルシューティングできますか?

pm.max_childrenPHP-FPMの一般的な問題には、CPUの使用量が多い、応答時間の遅い、および子プロセスの最大数に到達することに関連するエラーが含まれます。これらの問題は、多くの場合、PHP-FPM構成の設定を調整して、

設定の追加や別のプロセスマネージャーへの切り替えなど、解決できます。さらに、監視ツールを使用して、ボトルネックとパフォーマンスの問題を特定できます。

PHP-FPMは他のPHPハンドラーとどのように比較されますか?

PHP-FPMは、一般に、他のPHPハンドラーよりも効率的で柔軟性があると考えられています。さまざまなプロセスマネージャーをサポートし、サーバーのリソースとトラフィックパターンに従って調整できます。さらに、PHP-FPMはOpCodeキャッシングをサポートし、多数の同時リクエストを処理でき、忙しいサイトに最適です。

WebサーバーでPHP-FPMを使用できますか?

はい、PHP-FPMは、FASTCGIプロトコルをサポートするWebサーバーで使用できます。これには、Apache、Nginx、LightTPDなどの人気のあるWebサーバーが含まれます。

OpCodeキャッシングとは何ですか?また、PHPパフォーマンスをどのように改善しますか?

OpCode Cachingは、共有メモリにプリコンパイルされたスクリプトバイトコードを保存することにより、PHPパフォーマンスを改善するテクノロジーです。これにより、PHPがすべてのリクエストでスクリプトをロードおよび解析する必要性がなくなり、実行時間が短縮されます。

php-fpmのパフォーマンスを監視する方法は?

PHP-FPMのパフォーマンスを監視するために、いくつかのツールが利用できます。これらのツールには、PHP-FPMステータスページ(ワーカープロセスの現在の状態に関する情報を提供します)と、toppsなどのさまざまなコマンドラインツールが含まれます。さらに、より詳細なメトリックとアラートを提供するサードパーティの監視ソリューションがいくつかあります。

PHP-FPMを使用するためのベストプラクティスは何ですか?

PHP-FPMを使用したベストプラクティスには、サーバーのリソースとトラフィックモードを一致させるプロセスマネージャーの設定と、問題を特定して解決するためのパフォーマンスを定期的に監視することが含まれます。さらに、PHP-FPMとWebサーバーソフトウェアを最新の状態に保ち、最新のパフォーマンスの改善とセキュリティの修正を活用してください。

以上がPHP-FPMチューニング:&#x27; PM static&#x27;を使用最大パフォーマンス用の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

セッションのハイジャックはどのように機能し、どのようにPHPでそれを軽減できますか? セッションのハイジャックはどのように機能し、どのようにPHPでそれを軽減できますか? Apr 06, 2025 am 12:02 AM

セッションハイジャックは、次の手順で達成できます。1。セッションIDを取得します。2。セッションIDを使用します。3。セッションをアクティブに保ちます。 PHPでのセッションハイジャックを防ぐための方法には次のものが含まれます。1。セッション_regenerate_id()関数を使用して、セッションIDを再生します。2。データベースを介してストアセッションデータを3。

PHPで例外を効果的に処理する方法(試して、キャッチ、最後に、スロー)? PHPで例外を効果的に処理する方法(試して、キャッチ、最後に、スロー)? Apr 05, 2025 am 12:03 AM

PHPでは、Try、Catch、最後にキーワードをスローすることにより、例外処理が達成されます。 1)TRYブロックは、例外をスローする可能性のあるコードを囲みます。 2)キャッチブロックは例外を処理します。 3)最後にブロックは、コードが常に実行されることを保証します。 4)スローは、例外を手動でスローするために使用されます。これらのメカニズムは、コードの堅牢性と保守性を向上させるのに役立ちます。

PHPのさまざまなエラータイプを説明します(通知、警告、致命的なエラー、解析エラー)。 PHPのさまざまなエラータイプを説明します(通知、警告、致命的なエラー、解析エラー)。 Apr 08, 2025 am 12:03 AM

PHPには4つの主要なエラータイプがあります。1。notice:わずかなものは、未定義の変数へのアクセスなど、プログラムを中断しません。 2。警告:通知よりも深刻で、ファイルを含むなど、プログラムを終了しません。 3。ファタラー:最も深刻なのは、機能を呼び出すなど、プログラムを終了します。 4。ParseError:構文エラーは、エンドタグの追加を忘れるなど、プログラムの実行を防ぎます。

include、require、include_once、require_onceの違いは何ですか? include、require、include_once、require_onceの違いは何ですか? Apr 05, 2025 am 12:07 AM

PHPでは、include、require、include_once、require_onceの違いは次のとおりです。1)include警告を生成し、実行を継続します。これらの機能の選択は、ファイルの重要性と、重複包含を防ぐために必要かどうかに依存します。合理的な使用は、コードの読みやすさと保守性を向上させることができます。

PHPとPython:2つの一般的なプログラミング言語を比較します PHPとPython:2つの一般的なプログラミング言語を比較します Apr 14, 2025 am 12:13 AM

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHP:Web開発の重要な言語 PHP:Web開発の重要な言語 Apr 13, 2025 am 12:08 AM

PHPは、サーバー側で広く使用されているスクリプト言語で、特にWeb開発に適しています。 1.PHPは、HTMLを埋め込み、HTTP要求と応答を処理し、さまざまなデータベースをサポートできます。 2.PHPは、ダイナミックWebコンテンツ、プロセスフォームデータ、アクセスデータベースなどを生成するために使用され、強力なコミュニティサポートとオープンソースリソースを備えています。 3。PHPは解釈された言語であり、実行プロセスには語彙分析、文法分析、編集、実行が含まれます。 4.PHPは、ユーザー登録システムなどの高度なアプリケーションについてMySQLと組み合わせることができます。 5。PHPをデバッグするときは、error_reporting()やvar_dump()などの関数を使用できます。 6. PHPコードを最適化して、キャッシュメカニズムを使用し、データベースクエリを最適化し、組み込み関数を使用します。 7

HTTPリクエストメソッド(取得、投稿、配置、削除など)とは何ですか?それぞれを使用する必要がありますか? HTTPリクエストメソッド(取得、投稿、配置、削除など)とは何ですか?それぞれを使用する必要がありますか? Apr 09, 2025 am 12:09 AM

HTTPリクエストメソッドには、それぞれリソースを取得、送信、更新、削除するために使用されるGET、POST、PUT、および削除が含まれます。 1. GETメソッドは、リソースを取得するために使用され、読み取り操作に適しています。 2. POSTメソッドはデータの送信に使用され、新しいリソースを作成するためによく使用されます。 3. PUTメソッドは、リソースの更新に使用され、完全な更新に適しています。 4.削除メソッドは、リソースの削除に使用され、削除操作に適しています。

See all articles