web-dev-qa-db-ja.com

php-fpm:start_servers、min_spare_servers、max_spare_serversの理解に役立つ

サーバー用にphp-fpmのインストールを調整しようとしています。pm.start_serverspm.min_spare_servers、およびpm.max_spare_servers変数を使用して何をすべきかを理解するのに問題があります。 pm = dynamicを使用しています

pm.max_childrenは完全に明確です。各子プロセスは、一度に1つのWebクライアントにサービスを提供します。 OK。では、「サーバー」とは何でしょうか。明らかに、私が持っているデフォルトの設定に基づいて、1つのサーバーが複数の子にサービスを提供できます。上限は?子供の数/サーバーの経験則として何を使用すればよいですか?それともまったく関連していますか?一部のフォーラムで、誰かがサーバーの数はCPUコアの2 x#である必要があると主張していましたが、数が40〜50とはるかに多い推奨構成を確認しました。

PHPドキュメンテーションも、そこにある多くの「チューニングphp-fpm」記事もまったく役に立ちませんでした。

10
Bintz

基本的に、php-fpmがいつでも実行するプロセスの数は、dynamicに設定した場合と同様に、非常に構成可能です。 staticに設定すると、[〜#〜] always [〜#〜]が実行されている多くの子プロセスになります。通常は、リソースを節約するために動的に設定します。各子プロセスは1つの要求を処理できます。上限は、phpアプリケーションがどれほど重いか、そしてトラフィック量に依存します。また、各子のメモリ消費量の平均を計算し、[〜#〜] never [〜#〜]子の数がサーバーにインストールされているRAMの量を超えられるようにするか、スワッピングを開始するか、カーネルにプロセスの強制終了を開始させます。

; Choose how the process manager will control the number of child processes.
; Possible Values:
;   static  - a fixed number (pm.max_children) of child processes;
;   dynamic - the number of child processes are set dynamically based on the
;             following directives:
;             pm.max_children      - the maximum number of children that can
;                                    be alive at the same time.
;             pm.start_servers     - the number of children created on startup.
;             pm.min_spare_servers - the minimum number of children in 'idle'
;                                    state (waiting to process). If the number
;                                    of 'idle' processes is less than this
;                                    number then some children will be created.
;             pm.max_spare_servers - the maximum number of children in 'idle'
;                                    state (waiting to process). If the number
;                                    of 'idle' processes is greater than this
;                                    number then some children will be killed.
; Note: This value is mandatory.

これらのオプションを設定するときは、次の点を考慮してください。

  • あなたの平均的な要求はどのくらいですか?
  • サイトが取得する同時ビジターの最大数はいくつですか?
  • 各子プロセスは平均でどのくらいのメモリを消費しますか?
13
gbolo