Apache结构:多进程模块(MPM)
Apache的结构
-
- Apacheは高機能と高パフォーマンスを同時に実現するため、モジュール構造を採用している。
モジュールとは、ある機能を実現するためのソフトウェア。
プログラム本体に組み込んだり、交換したりが可能な小さなプログラムのかたまり。
2種類のモジュール(MPMと一般的な機能モジュール)
コア機能のモジュール:MPMという
一般的な機能モジュール

MPM:多处理模块
-
- モジュールの機能をサーバの基本機能にまで拡張したのが、マルチプロセッシングモジュール(MPM)
-
- コア機能(MPM)の役割
ネットワークポートをリスニングし、リクエストを受け付け、受け付けたリクエストを子プロセスやスレッドに割り当てるなどの役割を担う。
MPMは上記のコア機能をOSの特性やサーバ環境に合わせて交換可能としている。
MPM品种
-
- worker
マルチプロセス、マルチスレッドに対応。
各プロセスに対し決められた数のスレッドを用意する。
スレッド動作はリソースあたりの処理能力がプロセス動作よりも高くなり、一般的に性能を向上させる。
prefork(デフォルト)
あらかじめhttpd子プロセスをいくつか生成してクライアントからの要求を処理する。
マルチスレッドではなく、マルチプロセスでのみ動作する。
perchild(Apache 2.2で廃止)
マルチプロセス、マルチスレッドに対応。
プロセスそれぞれに個別のユーザIDを割り当てることで可溶性を高めることが出来る。
開発途中だったが、Apache 2.2で廃止
event(Apache 2.2より)
スケーラビリティに優れたMPM
Worker MPMのようなマルチスレッド処理が可能
Keep-Aliveリクエスト処理に、コネクションを処理するスレッドとは別のスレッドを割り当てることが可能。
上記の理由で、大規模な用途にも対応可能。
Apache 2.2 までのevent MPMは評価用で安定して利用できなかったが、Apache 2.4で改善されている。
写这篇文章的原因:做笔记
-
- Apache、Nginxなど様々なWebサーバ用OSSがある。
- Apacheの構造について簡潔に記録しておきたかったのが理由です。
请参考
- 本:サーバ構築の実際が分かる Apache[実践] 運用/管理