zoukankan      html  css  js  c++  java
  • 配置Apache运行在event事件驱动模式下

    (1)启用MPM

    Include conf/extra/httpd-mpm.conf

    (2)配置evnet MPM参数 

    <IfModule event.c>
    #default 3
    ServerLimit 15

    #default 256 MaxRequestWorkers (2.3版本叫MaxClients) <= ServerLimit * ThreadsPerChild
    MaxRequestWorkers 960

    #default 3
    StartServers 3

    #default 64
    ThreadsPerChild 64

    #default 100000 ThreadLimit >= ThreadsPerChild
    ThreadLimit 64

    #default 75
    MinSpareThreads 32

    #default 400 MaxSpareThreads >= (MinSpareThreads + ThreadsPerChild)
    MaxSpareThreads 112

    #default 0, at 200 r/s, 20000 r results in a process lifetime of 2 minutes
    MaxConnectionsPerChild 10000
    </IfModule>

    1、StartServers:初始数量的服务器进程开始,默认为3个
    2、MinSpareThreads:最小数量的工作线程,保存备用,默认是75个线程
    3、MaxSpareThreads:最大数量的工作线程,保存备用,默认是250线程
    4、ThreadsPerChild:固定数量的工作线程在每个服务器进程,默认是25个
    5、MaxRequestWorkers:最大数量的工作线程,默认是400
    6、MaxConnectionsPerChild:最大连接数的一个服务器进程服务,默认为0,没有上限限制,但是为了避免内存异常,影响稳定性,需要设置一个数值进行限制在修改配置后,需要停止htppd,再启动httpd, 不能通过apacherestart生效,而是先 apache stop 然后再 apache start才可以生效。
    7、ServerLimit:ServerLimit是活动子进程数量的硬限制,它必须大于或等于MaxClients除以ThreadsPerChild的值。serverLimit最大20000,默认是16。只有在你需要将MaxClients和ThreadsPerChild设置成需要超过默认值16个子进程的时候才需要使用这个指令。不要将该指令的值设置的比MaxClients和ThreadsPerChild需要的子进程数量高。使用这个指令时要特别当心。如果将ServerLimit设置成一个高出实际需要许多的值,将会有过多的共享内存被分配。如果将ServerLimit和MaxClients设置成超过系统的处理能力,Apache可能无法启动,或者系统将变得不稳定。RedHat Enterprise LinuxAS3.0Update2最大MaxClients只能设置到256。如果你需要设置其为更高,需要在MaxClients前面添加:ServerLimitxxx其中xxx不能少于MaxClients的数值。该设置方法适用于Apache 2.0系列。
    8、ThreadLimit:ThreadLimit是所有服务线程总数的硬限制,它必须大于或等于ThreadsPerChild指令。使用这个指令时要特别当心。如果将ThreadLimit设置成一个高出ThreadsPerChild实际需要很多的值,将会有过多的共享内存被分配。如果将ThreadLimit和ThreadsPerChild设置成超过系统的处理能力,Apache可能无法启动,或者系统将变得不稳定。该指令的值应当和ThreadsPerChild可能达到的最大值保持一致。


    计算event的相关参数


    (1):计算服务器进程的平均内存
    [root@localhost ~]# ps aux | grep 'httpd' | awk '{print $6/1024 " MB";}'

    (2):计算正在通讯传输过程中的进程的平均内存,最好在一天之内不同的时间段内运行以下代码
    [root@localhost ~]# ps aux | grep 'httpd' | awk '{print $6/1024;}' | awk '{avg += ($1 - avg) / NR;} END {print avg " MB";}'

    通过上面两个指令计算出平均进程所使用的内存大小 ,再通过以下公式计算
    MaxRequestWorkers(MaxClients) = (Total RAM - RAM used for Linux, MySQL, etc.) / Average httpd process size.
    1、StartServers 30% of MaxRequestWorkers
    2、MinSpareThreads 5% of MaxRequestWorkers
    3、MaxSpareThreads10% of MaxRequestWorkers
    4、ServerLimit == MaxRequestWorkers
    5、MaxConnectionsPerChild 10000 (as conservative alternative to address possible problem with memory leaky apps)
    event MPM 与worker MPM区别

    可以支持比worker更高的并发数,主要安装在类unix/linux上的工作模式。event mpm是worker mpm的变种,但是具有比worker MPM更好的并发性能。在event mpm模式下,ssl是不被支持的,他会被切换到worker mpm下处理。event mpm在apache2.4版本时才被从实验状态转化成标准应用。

  • 相关阅读:
    配置和兼容性测试的区别是什么?
    7 天内免登陆,测试要怎么去测试?
    在测试“支付网关”过程中的5个要点
    Hibernate入门与简谈
    jQuery专题
    Java反射机制专题
    Java IO流
    EL和JSTL专题
    泛型(Generic)
    Java异常处理
  • 原文地址:https://www.cnblogs.com/peteremperor/p/10939336.html
Copyright © 2011-2022 走看看