Apache的fork模式和worker模式判断方法

本文章来给各位同学介绍判断apache的工作模式是prefork模式还是worker模式,测试方法我们只要使用http来操作。

apache常用的工作模式有prefork和worker模式。运行命令httpd -l 或者apache2 -l ,输出的结果中如果含有prefork.c,那就是prefork模式,如果结果中含有worker.c,那就是worker模式。

知道模式之后我们可以在apache的confextrahttpd-mpm.conf 进行编辑了

  #  # Server-Pool Management (MPM specific)  #    #  # PidFile: The file in which the server should record its process  # identification number when it starts.  #  # Note that this is the default PidFile for most MPMs.  #  <IfModule !mpm_netware_module>    PidFile "logs/httpd.pid"  </IfModule>    #  # The accept serialization lock file MUST BE STORED ON A LOCAL DISK.  #  <IfModule !mpm_winnt_module>  <IfModule !mpm_netware_module>  LockFile "logs/accept.lock"  </IfModule>  </IfModule>    #  # Only one of the below sections will be relevant on your  # installed httpd. Use "apachectl -l" to find out the  # active mpm.  #    # prefork MPM  # StartServers: number of server processes to start  # MinSpareServers: minimum number of server processes which are kept spare  # MaxSpareServers: maximum number of server processes which are kept spare  # MaxClients: maximum number of server processes allowed to start  # MaxRequestsPerChild: maximum number of requests a server process serves  <IfModule mpm_prefork_module>    StartServers     5    MinSpareServers    5    MaxSpareServers   10    MaxClients     150    MaxRequestsPerChild  0  </IfModule>    # worker MPM  # StartServers: initial number of server processes to start  # MaxClients: maximum number of simultaneous client connections  # MinSpareThreads: minimum number of worker threads which are kept spare  # MaxSpareThreads: maximum number of worker threads which are kept spare  # ThreadsPerChild: constant number of worker threads in each server process  # MaxRequestsPerChild: maximum number of requests a server process serves  <IfModule mpm_worker_module>    StartServers     2    MaxClients     150    MinSpareThreads   25    MaxSpareThreads   75    ThreadsPerChild   25    MaxRequestsPerChild  0  </IfModule>    # BeOS MPM  # StartThreads: how many threads do we initially spawn?  # MaxClients:  max number of threads we can have (1 thread == 1 client)  # MaxRequestsPerThread: maximum number of requests each thread will process  <IfModule mpm_beos_module>    StartThreads      10    MaxClients       50    MaxRequestsPerThread 10000  </IfModule>    # NetWare MPM  # ThreadStackSize: Stack size allocated for each worker thread  # StartThreads: Number of worker threads launched at server startup  # MinSpareThreads: Minimum number of idle threads, to handle request spikes  # MaxSpareThreads: Maximum number of idle threads  # MaxThreads: Maximum number of worker threads alive at the same time  # MaxRequestsPerChild: Maximum number of requests a thread serves. It is  #           recommended that the default value of 0 be set for this  #           directive on NetWare. This will allow the thread to  #           continue to service requests indefinitely.               <IfModule mpm_netware_module>    ThreadStackSize   65536    StartThreads      250    MinSpareThreads     25    MaxSpareThreads    250    MaxThreads      1000    MaxRequestsPerChild   0    MaxMemFree       100  </IfModule>    # OS/2 MPM  # StartServers: Number of server processes to maintain  # MinSpareThreads: Minimum number of idle threads per process,  #         to handle request spikes  # MaxSpareThreads: Maximum number of idle threads per process  # MaxRequestsPerChild: Maximum number of connections per server process  <IfModule mpm_mpmt_os2_module>    StartServers      2    MinSpareThreads    5    MaxSpareThreads    10    MaxRequestsPerChild  0  </IfModule>    # WinNT MPM  # ThreadsPerChild: constant number of worker threads in the server process  # MaxRequestsPerChild: maximum number of requests a server process serves  <IfModule mpm_winnt_module>    ThreadsPerChild   150    MaxRequestsPerChild  0  </IfModule>    

我们如果是windows系统一般是使用最后面的winnt mpm来操作了。

参与评论