目录

event(MPM)

优质
小牛编辑
153浏览
2023-12-01
说明一个标准workerMPM的实验性变种。
状态MPM
模块名mpm_event_module
源文件event.c

概述

警告

这是一个实验性的MPM,因此可能未必按照期望的方式工作。
[译者注]
事实上,这个MPM除了在应用于HTTPS以及配合输入过滤器工作时可能会出现故障外,其它场合和worker一样稳定,工作方式也类似,并且在性能上优于worker,特别是开启KeepAlive时优势更加明显。

event多路处理模块(MPM)被设计成面向需要处理大量并发连接的场合(特别是在开启KeepAlive的场合),它基于worker开发,并且配置指令与worker完全相同。

要使用event MPM,你必须在配置脚本configure的命令行上使用--with-mpm=event选项。

该MPM依赖于APR用于线程同步的compare-and-swap原子操作,并且你还需要在configure命令行上使用--enable-nonportable-atomics=yes选项。如果你为x86平台编译,那么最低要求i486以上的CPU支持;如果你为SPARC平台编译,那么最低要求UltraSPARC芯片。因为更老的CPU不支持compare-and-swap原子操作。

该MPM不能在缺乏良好线程支持的平台上正常工作,特别是缺乏EPoll或KQueue支持的平台。

  • 对于FreeBSD,最低要求 FreeBSD 5.3 及以上的版本。
  • 对于NetBSD,最低要求 2.0 及以上的版本。
  • 对于Linux,最低要求2.6及以上版本的内核。并且还需要确保你使用的glibc具有EPoll支持(译者注:推荐使用glibc-2.6.1及以上的版本)。