noel0217 发表于 2018-11-19 10:00:28

apache的两种常用工作模式

apache常用的工作模式有Prefork和Worker模式:
1 在大多数平台上,Prefork MPM在效率上要比Worker MPM要高,但是内存使用大得多。prefork的无线程设计在某些情况下将比worker更有优势:它可以使用那些没有处理好线程安全的第三方模块,并且对于那些线程调试困难的平台而言,它也更容易调试一些。
2 Worker模式:WorkerMPM 使用多个子进程,每个子进程有多个线程。每个线程在某个确定的时间只能维持一个连接。通常来说,在一个高流量的HTTP服务器上,Worker MPM是个比较好的选择,因为WorkerMPM的内存使用比Prefork MPM要低得多。Worker MPM也由不完善的地方,如果一个线程崩溃,整个进程就会连同其所有线程一起"死掉".由于线程共享内存空间,所以一个程序在运行时必须被系统识别为"每个线程都是安全的"。
  自我描述总结:

Apache常用的工作模式就两种,一种是prefork模式,一种是worker模式。这两种的工作模式的区别。perfork是以master进程生成子进程,每个子进程在一段时间内只接受一个链接,这个模式的优点是它比较稳定,进程之间相互独立,而且最大的不足这种模式比较占用内存。Worker模式以matser进程生成多个子进程,多个子进程同时会生成更多的线程,每个线程在一定时间内接受一个链接。优点:高流量大并发要使用worker模式
  缺点:进程中有一个线程挂了,那整个工作进程以及这个工作进程下面所有的线程都会挂掉,在这个进程上面的所有请求就断掉了
  调试的配置文件为:
/usr/local/apache2/conf/extra/httpd-mpm.conf文件

    StartServers          8    //启动工作的进程
    ServerLimit         1000   //最大并发不能超过多少
    MinSpareServers       25    //预留的最小空闲进程
    MaxSpareServers      75   //预留的最大空闲进程
    MaxClients          1000    //每秒同时允许多少个链接,
页: [1]
查看完整版本: apache的两种常用工作模式