• okass 在版块 Coding 中回复了话题 Apache2 相关优化专题 2年, 7个月前

    P2. Apache2 各种模式的参数优化配置

     

    1. perfork 模式优化

    路径:  /etc/apache2/mods-available/mpm_prefork.conf

    # 默认配置如下
    <IfModule mpm_prefork_module>
    #ServerLimit 256
    StartServers 5 #推荐设置:小=默认 中=20~50 大=50~100
    MinSpareServers 5 #推荐设置:与StartServers保持一致
    MaxSpareServers 10 #推荐设置:小=20 中=30~80 大=80~120
    MaxClients 150 #推荐设置:小=500 中=500~1500 大型=1500~3000
    MaxRequestsPerChild 0 #推荐设置:小=10000 中或大=10000~500000
    </IfModule>

    # ServerLimit: 服务器最大进程限制数(Apache默认256),该数值应大于等于MaxRequestWorkers,否则MaxRequestWorkers无法设置
    # StartServers:  默认开始的服务器进程数
    # MinSpareServers:  最小的空闲进程数
    # MaxSpareServers:  最大的空闲进程数
    # MaxRequestWorkers:  最大数量的服务器进程数,2.3.13之前叫MaxClients ,最重要的一个参数
    # MaxConnectionsPerChild:  最大连接数的一个服务器进程服务

     

    • ServerLimit,取决于你系统的资源,每个apache进程默认占用20M内存,基本可以按照这个公式来计算:最大内存*80%/2M=ServerLimit
    • MaxRequestWorkers,一般apache线程数不会超过100,为什么?内存为2G的,100个线程就近2G了。
    • MinSpareServers,如果当前空闲子进程数少于MinSpareServers ,那么Apache将以第一秒一个,第二秒两个,第三秒四个,按指数递增个数的速度产生新的子进程。在一台压力大(并发访问2800)的服务器上,MaxSpareServers这个值设置的是200
    • MaxRequestsPerChild,指令设置每个子进程在其生存期内允许伺服的最大请求数量。完成了指定的请求数后,会自动结束。好处:可防止偶然的内存泄露。若为0,可服务无限次。另外,kepalive连接,只计一个数
    • Keep-Alive 默认:ON
    • MaxKeepAliveRequests 默认:100,到该请求数后,将关闭该keepalive
    • KeepAliveTimeout 默认:5 ,到达该时间后,将关闭keepalive
    • TimeOut 默认:300 ,
WirelessLink
Logo