zoukankan      html  css  js  c++  java
  • Apache 工作模式详解

    Apache 工作模式详解

      Apache 2.X  支持插入式并行处理模块,称为多路处理模块(MPM)。在编译apache时必须选择也只能选择一个MPM,对类UNIX系统,有几个不同的MPM可供选择,它们会影响到apache的速度和可伸缩性。

    Apache启动会通过指定IP监听PID端口 会开通过主进程开启多个子进程 或多线程客户端通过IP访问到Apache监听端口 tcp请求资源,apche会把请求转交给子进程处理,获取资源,当客户端请求完毕,进程会演变为将死状态,请求主进程将线程或子进程杀死,释放内存,如果主进程忙碌没有杀死,它就会演变为僵尸进程,消耗内存资源并不断向主进程发起请求将它杀死。

    Prefork MPM

       prefork工作原理:prefork会创建多个子进程每个子进程处理一个请求(默认5个),它的特点在于域派生功能,当请求数量大于开启的子进程数量时就会创建多个子进程最多每秒32个,最大并发链接伐值是自定义的。请求客户端减少后系统就删除多余的子进程。

      优点:

          1、pfrefork稳定性比较强。每个子进程都会独立处理对应的单个请,如果其中一个请求出现问题就不会影响到其他请求。

          2、Prefork在所有情况下都很安全,对运行非线程安全(non-thread-safe)模式的软件如PHP,它是唯一的安全选择。

      缺点:

          1、Prefork每一个请求都会产生一个新的进程,导致系统资源(尤其是内存)消耗的很快,一旦并发量较大的时候,大量的Apache进程会占用巨大的内存空间。


     Worker MPM

      worker工作原理:worker创建多个子进程每个子进程下会创建多个线程,它的特点在于处理多个请求数量,每个子进程通过线程处理多个请求。线程本身没有内存,多个线程使用的是一个子进程的内存。

      优点:

          1、worker多线程模式,可以处理更多的并发请求。

          2、worker使用的内存资源更小,对系统的开销更小。

      缺点:

          1、worker处理多个请求在一个子进程内,如果一个线程出现问题会连带其他线程,稳定性不强。

          2、资源争夺,多个线程访问一个子进程的内存空间 。可通过锁文件机制解决。


    Event MPM

      以上两种稳定的MPM方式在非常繁忙的服务器应用下都有些不足。尽管HTTP的Keepalive方式能减少TCP连接数量和网络负载,但是 Keepalive需要和服务进程或者线程绑定,这就导致一个繁忙的服务器会耗光所有的线程。 Event MPM是解决这个问题的一种新模型,它把服务进程从连接中分离出来。在服务器处理速度很快,同时具有非常高的点击率时,可用的线程数量就是关键的资源限 制,此时Event MPM方式是最有效的。Event MPM可以用来处理更高负载。值得注意的是,Event MPM不能在安全HTTP(HTTPS)访问下工作。 

      优点:

          1、处理更高的负载请求,不需要keepalive建立链接。

      缺点:

          1、不能在安全HTTPS访问下工作。

  • 相关阅读:
    基于element-ui图片封装组件
    计算时间间隔具体每一天
    C语言学习笔记 —— 函数作为参数
    AtCoder Beginner Contest 049 题解
    AtCoder Beginner Contest 048 题解
    AtCoder Beginner Contest 047 题解
    AtCoder Beginner Contest 046 题解
    AtCoder Beginner Contest 045 题解
    AtCoder Beginner Contest 044 题解
    AtCoder Beginner Contest 043 题解
  • 原文地址:https://www.cnblogs.com/liujunjun/p/12497786.html
Copyright © 2011-2022 走看看