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版本时才被从实验状态转化成标准应用。

  • 相关阅读:
    85. Maximal Rectangle
    120. Triangle
    72. Edit Distance
    39. Combination Sum
    44. Wildcard Matching
    138. Copy List with Random Pointer
    91. Decode Ways
    142. Linked List Cycle II
    异或的性质及应用
    64. Minimum Path Sum
  • 原文地址:https://www.cnblogs.com/peteremperor/p/10939336.html
Copyright © 2011-2022 走看看