httpd工作模式中的prefork、worker、event优缺点:


http服务,需要客户端和服务器端建立连接,httpd有三种工作模式:prefork worker event

   优点:在资源够用的情况下服务稳定

   worker:这个就是改进之前的工作模型,就是让一个进程处理多个响应.

   event:这样模型就是让一个进程产生多个线程,让每个线程处理处理客户端请求,并且每个线程可以处理多个线程



  查看MPM,可以使用httpd -l命令来查看当前加载的MPM模块

[root@s ~]# httpd -l

Compiled in modules:

 core.c

 prefork.c

 http_core.c

 mod_so.c

  http 2.2和2.4的区别

   httpd2.2 可以通过修改配置文件来改变当前服务器所试用的模块.

   http2.4 :两种方式: 静态模块 动态模块

   如果把MPM编译成静态模块,那么要改变MPM,只能通过重新编译安装httpd来修改.

[root@s yum.repos.d]# ps uax |grep httpd

root      2918  0.0  0.3 119088  1616 pts/2    S+   15:14   0:00 vi httpd

root      2997  0.0  0.5 183720  2720 ?        Ss   15:33   0:00 /usr/sbin/httpd

root      3001  0.0  0.1 103252   824 pts/1    S+   15:33   0:00 grep httpd

去掉 /etc/sysconfig/httpd 这行的注释


HTTPD=/usr/sbin/httpd.worker


   [root@s yum.repos.d]# ps aux |grep http

root      2918  0.0  0.3 119088  1616 pts/2    S+   15:14   0:00 vi httpd

root      3029  0.0  0.8 186560  4164 ?        Ss   15:34   0:00 /usr/sbin/httpd.worker

apache    3034  0.0  0.6 596356  3340 ?        Sl   15:35   0:00 /usr/sbin/httpd.worker

apache    3035  0.1  0.6 596356  3336 ?        Sl   15:35   0:00 /usr/sbin/httpd.worker

apache    3036  0.1  0.6 596356  3340 ?        Sl   15:35   0:00 /usr/sbin/httpd.worker

root      3150  0.0  0.1 103252   828 pts/1    S+   15:35   0:00 grep http



如果prefork.c模块存在,则定义在标签内的参数有效

StartServers       8 服务开启默认启动的工作进程数,不包含主进程

MinSpareServers    5 最少空闲进程数;

MaxSpareServers   20 最大空闲进程数;

ServerLimit      256 最大活动进程数;

MaxClients       256 并发请求的最大数,一条进程最多处理多少个请求

MaxRequestsPerChild  4000 每个子进程在生命周期内所能服务的最多请求个数




StartServers         4     服务开启时,启动的子进程的个数;

MaxClients         300     并发请求的最大数;

MinSpareThreads     25     最小空闲线程数;

MaxSpareThreads     75     最大空闲进程数;

ThreadsPerChild     25     每个子进程线程数;

MaxRequestsPerChild  0     每个子进程在生命周期内所能够服务的最多请求个数,0表示不限定



  httpd 2.4中event参数

StartServices      默认进程数

MinSpareThreads    最小空闲进程数

MaxSpareThreads    最大空闲进程数

ThreadsPerChild    每个子进程可以生成的线程数

MaxReqestWorkers   最大线程数量

MaxConnectionPerchild 子进程的最大连接数,当达到设置值以后,APACHE就会结束当前的子进程

       总结:     安全和效率中考虑参数设置,并且自己测试,才能得到比较满意的配置