質問: 「テストで実際に見たウェブサーバの「遅い」状態とは」 上記サイトを閲覧していて、プロセスはクライントの数だけメモリ空間に割り当てらると解釈しましたが、齟齬はございますでしょうか。 例えば、あるECサイトに5ユーザー(クライアント)が同時にアクセスした場合、5つのプロセスがメモリに割り当てられるのでしょうか。 それとも、プロセスは1つでスレッドが5つという状態なのでしょうか。 初歩的な質問で申し訳ございませんが、ご回答宜しくお願い致します。
回答: > プロセスはクライントの数だけメモリ空間に割り当てらると解釈しました クライアント数分、プロセス・スレッドを作るような作りは、一般には、大量処理するサーバには向いてない、イケてない作りといわれています。クライアントが少ないなら別ですが。 プロセスやスレッドを生成する処理は、比較的重めの処理であり、リクエストを受ける度にそんなのをいちいちポコポコつくってなんてやってられないのです。また、プロセス・スレッドの数が増えると、OSのプロセス・スレッド切り替えコストもかかります。 リクエストを大量に処理するサーバは通常はイベントドリブン&パイプランな作りにします。今だとSEDAがおすすめだけれど、apacheは作られたのがSEDAが提案される前なので、イベントドリブン+パイプラインのはずです。