FastCGI と lighttpd を使用して Django アプリを実行しています。
maxrequest、maxspare、minspare、maxchildren に使用する値を決定する際に考慮すべきことを説明してもらえますか?
これらのオプションはあまり文書化されていませんが、非常に重要なようです。
彼らが何をしているのかを私に言わないでください。それらがどのような意味を持ち、どの値を使用するかをどのように決定する必要があるかを理解したい.
ありがとう。
定義から始めましょう
maxrequests: 強制終了される前に子サーバーが行うリクエストの数 そして新しいものが分岐した maxspare : 実行し続ける予備プロセスの最大数 minspare : プリフォークするスペア プロセスの最小数 maxchildren: プリフォーク モードでのプロセス数のハード リミット
これは、Web サーバーで常に最大maxchildrenプロセスが実行され、それぞれがmaxrequestsリクエストに対して実行されることを意味します。サーバーの起動時にminspareプロセスを取得します。これは、さらにリクエストが来る場合、maxspare (またはmaxchildren ) まで成長し続けます。
したがって、minspareを使用すると、最小で予想される同時リクエストの数を指定できます (1 つから開始する場合は、プロセスの作成を避けることが重要です。たとえば、10 から開始することをお勧めします)。サーバーはせいぜい(予想される応答時間などを損なうことなく。検証するにはストレステストが必要です)。また、maxrequestsは、何らかの制約のために永久に実行できない場合に備えて、各子の存続期間について話しています。
fcgi 設定を apache ワーカー設定と調整することを忘れないでください。私は通常、fcgi ワーカーよりも多くの apache ワーカーを保持しています...それらは軽量であり、同時実行数が maxspare よりも高くなった場合に、使用可能な fcgi ワーカーが解放されてリクエストを処理するのを待ちます。