Apacheのpreforkモジュールが、接続を処理するために1つのマスタープロセスと複数の子プロセスを作成することを知っています。私の質問は次のとおりです。
各プリフォークの子は、1回に1つ接続を処理しますか、それとも1つ要求を処理しますか?また、1つの接続を処理する場合、新しい接続はそれぞれ、アイドル状態の子プロセスの1つによって処理されるためにキューで待機する必要があることを意味しますか?そして、それはキープアライブ接続について何を言いますか?
また、スレッドを使用するワーカーmpmモジュールについても同じ質問がありますか?
各プリフォークの子は、1回に1つの接続を処理しますか、それとも1つの要求を処理しますか?
各子/スレッドは1つの接続(TCP接続)を処理します。
接続が閉じられると、子プロセスは別の接続を待ちます。 1つの接続で、0、1、またはそれ以上のリクエスト(HTTPリクエスト)を送信できます。
クライアントがリクエストを送信しない場合、構成によっては、ログでHTTP408がタイムアウトする可能性があります。
KeepAlive を有効にすると、最初のリクエストが処理されると接続が閉じられないため、接続ごとに複数のHTTPリクエストを設定できます。
キープアライブがない場合、1つのリクエストで1つの接続があります。そのため、問題が発生する可能性があります。
新しい接続はそれぞれ、アイドル状態の子プロセスの1つによって処理されるために、キューで待機する必要がありますか?
はい、そういうわけで、いくつかのアイドル状態のサーバー/スレッドを持つようにApacheを構成するので、新しい接続は新しい子プロセス/スレッドが作成されるのを待つ必要はありません。十分な子プロセスがない場合は、必要に応じて、構成の制限に従って新しいプロセスが作成されます。
これまでのところ、プロセスについての私自身の理解のために。