• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • mpm_prefork

    描述:实现非线程的预分支Web服务器
    状态:MPM
    模块标识符:mpm_prefork_module
    源文件:前叉

    摘要

    该多处理模块(MPM)实现了非线程的预分支Web服务器。每个服务器进程都可以回答传入的请求,并且父进程管理服务器池的大小。它适用于需要避免使用线程以与非线程安全库兼容的站点。这也是隔离每个请求的最佳MPM,因此单个请求的问题不会影响其他任何请求。

    该MPM非常自我调节,因此几乎不需要调整其配置指令。最重要的是,MaxRequestWorkers其大小应足以处理您希望接收的并发请求,但又应足够小,以确保有足够的物理RAM用于所有进程。

    怎么运行的

    单个控制进程负责启动子进程,以监听连接并在连接到达时为其提供服务。Apache httpd始终尝试维护几个备用服务器或空闲服务器进程,这些进程随时可以处理传入的请求。这样,客户端无需等待新的子进程被派生,就可以满足他们的请求。

    StartServersMinSpareServersMaxSpareServers,和MaxRequestWorkers调节父进程如何创造儿童服务请求。通常,Apache httpd非常自我调节,因此大多数站点无需根据其默认值调整这些指令。需要同时满足256个以上请求的MaxRequestWorkers站点可能需要增加,而内存有限的站点可能需要减少,MaxRequestWorkers以防止服务器崩溃(将内存交换到磁盘,再换回磁盘)。性能提示文档中提供了有关调优过程创建的更多信息。

    虽然父进程通常是root在Unix下启动的,以便绑定到端口80,但是子进程是由Apache httpd作为特权较低的用户启动的。在UserGroup指令用于设置Apache的httpd的子进程的权限。子进程必须能够读取将要提供的所有内容,但应具有尽可能少的特权。

    MaxConnectionsPerChild通过杀死旧进程并启动新进程来控制服务器回收进程的频率。

    mpm-accept当遇到雷电群问题时(通常,当有多个侦听套接字时),此MPM使用互斥锁来序列化对传入连接的访问。可以使用Mutex伪指令配置此互斥锁的实现方面。在性能提示文档有关于这个互斥的附加信息。

    MaxSpareServers 指令

    描述:空闲子服务器进程的最大数量
    句法:MaxSpareServers number
    默认:MaxSpareServers 10
    内容:服务器配置
    状态:MPM
    模组:前叉

    MaxSpareServers指令设置所需的最大空闲子服务器进程数。空闲进程是不处理请求的进程。如果有多个MaxSpareServers空闲,那么父进程将杀死多余的进程。

    仅在非常繁忙的站点上才需要调整此参数。将此参数设置为大量几乎总是一个坏主意。如果您尝试将值设置为等于或小于MinSpareServers,Apache HTTP Server会自动将其调整为MinSpareServers+ 1

    参见

    • MinSpareServers
    • StartServers
    • MaxSpareThreads

    MinSpareServers 指令

    描述:最小空闲子服务器进程数
    句法:MinSpareServers number
    默认:MinSpareServers 5
    内容:服务器配置
    状态:MPM
    模组:前叉

    MinSpareServers指令设置所需的最小空闲子服务器进程数。空闲进程是不处理请求的进程。如果MinSpareServers空闲状态少于空闲状态,则父进程将创建新的子进程:它将生成一个子进程,等待一秒钟,然后生成两个子进程,等待一秒钟,然后生成四个子进程,然后将以指数方式继续进行直到每秒每秒生成32个子进程。只要满足MinSpareServers设置,它就会停止。

    仅在非常繁忙的站点上才需要调整此参数。将此参数设置为大量几乎总是一个坏主意。

    参见

    • MaxSpareServers
    • StartServers
    • MinSpareThreads

    上篇:mpm_mpmt_os2

    下篇:mpm_winnt