サーバー用にphp-fpmのインストールを調整しようとしています。pm.start_servers
、pm.min_spare_servers
、およびpm.max_spare_servers
変数を使用して何をすべきかを理解するのに問題があります。 pm = dynamic
を使用しています
pm.max_children
は完全に明確です。各子プロセスは、一度に1つのWebクライアントにサービスを提供します。 OK。では、「サーバー」とは何でしょうか。明らかに、私が持っているデフォルトの設定に基づいて、1つのサーバーが複数の子にサービスを提供できます。上限は?子供の数/サーバーの経験則として何を使用すればよいですか?それともまったく関連していますか?一部のフォーラムで、誰かがサーバーの数はCPUコアの2 x#である必要があると主張していましたが、数が40〜50とはるかに多い推奨構成を確認しました。
PHPドキュメンテーションも、そこにある多くの「チューニングphp-fpm」記事もまったく役に立ちませんでした。
基本的に、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.
これらのオプションを設定するときは、次の点を考慮してください。