zoukankan      html  css  js  c++  java
  • apache服务器中进程和线程的使用

    http://blog.csdn.net/mayabin/article/details/1042642


    apache功能强大,应用十分广泛。

    为了使不同平台的apache都能得到优化,apache支持MPM模块。

    linux/unix下的好的2个模块分别为prefork和worker。

    最初设计unix的时候,并没有线程这个概念,所以无论系统内核还是应用软件,都不支持线程的应用。最小的作业单位是进程。

    windows是一个完全支持线程的操作系统。线程比进程更小,能提高系统效率,减少系统开支。

    现在无论是linux还是freebsd,都在积极改进,在内核中加入线程的支持。

    apache本身即支持线程也支持进程。它怎么实现的呢?就是用MPM。

    prefork模块:基于进程的web服务器

    默认配置段如下: 
     
    StartServers 5 
    MinSpareServers 5 
    MaxSpareServers 10 
    MaxClients 150 
    MaxRequestsPerChild 0 

    prefork的工作原理是,由主控制进程生成“StartServers”个子进程,当空闲进程小于MinSpareServers时,系统生成一个又一个进程,直到进程数达到MaxSpareThreads;而MaxClients设置允许的最大客户连接数。每个子进程处理服务请求次数由MaxRequestPerChild定义。 缺省的设置值为0,即响应无限此请求。 

    worker模块:基于线程程的web服务器

    默认配置如下: 
     
    StartServers 2 
    MaxClients 150 
    MinSpareThreads 25 
    MaxSpareThreads 75 
    ThreadsPerChild 25 
    MaxRequestsPerChild 0 

    worker的工作原理是,由主控制进程生成“StartServers”个子进程,每个子进程中包含固定的ThreadsPerChild线程数,各个线程独立地处理请求。同样,为了不在请求到来时再生成线程,MinSpareThreads和MaxSpareThreads设置了最少和最多的空闲线程数;而MaxClients设置允许的最大线程总数。如果现有子进程中的线程总数不能满足负载,控制进程将派生新的子进程。每个子线程处理服务请求次数由MaxRequestPerChild定义。 缺省的设置值为0,即响应无限此请求。

  • 相关阅读:
    验证LeetCode Surrounded Regions 包围区域的DFS方法
    Qt Package Project 打包发布程序
    [LeetCode] Missing Number 丢失的数字
    [CareerCup] 6.4 Blue Eyes People on Island 岛上的蓝眼人
    [CareerCup] 6.3 Water Jug 水罐问题
    [CareerCup] 6.2 Dominos on Chess Board 棋盘上的多米诺
    [CareerCup] 6.1 Find Heavy Bottle 寻找重瓶子
    [CareerCup] 5.8 Draw Horizonatal Line 画横线
    Print or Cout an Unsigned Char Variable 打印无符号字符
    Kinect 学习链接
  • 原文地址:https://www.cnblogs.com/linewman/p/9918705.html
Copyright © 2011-2022 走看看