Apache prefork は、複数のプロセスを使用してリクエストを処理します。ワーカー モードは、複数のプロセスと複数のスレッドを使用するプロセスに相当しますが、より多くの同時リクエストを処理でき、消費するメモリと CPU が少なくなります。スレッドセーフな質問。これら 2 つのモードの違いについては、インターネット上で多くの比較が行われていますが、それらはすべて、先ほど述べたマルチプロセスとマルチスレッドについて述べています。
質問 1: ワーカー モードは高い同時実行性を向上させ、メモリと CPU を節約できるのに、Apache が依然としてデフォルトでプリフォーク モードを使用するのはなぜですか?
質問 2: Apache がワーカー モードを使用し、次に Linux の epoll モードを使用する場合、10,000 を超える同時実行をサポートできますか?
Apache はもちろんワーカー モードを使用して PHP を処理できます。おっしゃるとおり、同時リクエストを処理する能力が向上し、メモリと CPU の消費量が少なくなります。ただし、唯一の欠点は、プリフォークがマルチプロセスおよびマルチスレッドであることです。また、一部の PHP 拡張機能にはスレッド セーフの問題があるため、スレッド セーフな PHP 拡張機能がない場合はそれを使用できますが、存在する場合は使用しないことをお勧めします。また、Apache の場合はデータの不整合が発生します。 epoll を使用すれば可能ですが、10,000 人を超える同時ユーザーを実行するのはおそらく少し難しいでしょう