中间件速查手册
Web 服务器Multi-Processing Module

MPM 多进程模型 是什么?

prefork 每连接一进程,worker 每连接一线程,event 是异步版

类比:每个客人配一个专属服务员(prefork)

三种 MPM

选 MPM 就是选并发模型,直接决定能扛多少连接。

  • prefork:每连接一进程,稳定但吃内存,兼容非线程安全模块
  • worker:每进程多线程,内存更省,适合高并发
  • event:worker 的异步版,keep-alive 连接不再占用线程,是现在的推荐

关键参数

MaxRequestWorkers 决定并发上限,ServerLimit 决定进程/线程池上限,StartServers 是预热数量。配小了会 503,配大了会 OOM。

和 Nginx 对比

同样 1 万并发,Apache prefork 需要 1 万进程(GB 级内存),Nginx 几个 worker 就够(MB 级)。这就是 Nginx 在 C10K 之后迅速取代 Apache 的原因。

它出现在这些中间件里

相关概念