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-PoolManagement(MPMspecific) # # #PidFile:Thefileinwhichtheservershouldrecorditsprocess #identificationnumberwhenitstarts. # #NotethatthisisthedefaultPidFileformostMPMs. # <IfModule!mpm_netware_module> PidFile"logs/httpd.pid" </IfModule> # #TheacceptserializationlockfileMUSTBESTOREDONALOCALDISK. # <IfModule!mpm_winnt_module> <IfModule!mpm_netware_module> LockFile"logs/accept.lock" </IfModule> </IfModule> # #Onlyoneofthebelowsectionswillberelevantonyour #installedhttpd.Use"apachectl-l"tofindoutthe #activempm. # #preforkMPM #StartServers:numberofserverprocessestostart #MinSpareServers:minimumnumberofserverprocesseswhicharekeptspare #MaxSpareServers:maximumnumberofserverprocesseswhicharekeptspare #MaxClients:maximumnumberofserverprocessesallowedtostart #MaxRequestsPerChild:maximumnumberofrequestsaserverprocessserves <IfModulempm_prefork_module> StartServers5 MinSpareServers5 MaxSpareServers10 MaxClients150 MaxRequestsPerChild0 </IfModule> #workerMPM #StartServers:initialnumberofserverprocessestostart #MaxClients:maximumnumberofsimultaneousclientconnections #MinSpareThreads:minimumnumberofworkerthreadswhicharekeptspare #MaxSpareThreads:maximumnumberofworkerthreadswhicharekeptspare #ThreadsPerChild:constantnumberofworkerthreadsineachserverprocess #MaxRequestsPerChild:maximumnumberofrequestsaserverprocessserves <IfModulempm_worker_module> StartServers2 MaxClients150 MinSpareThreads25 MaxSpareThreads75 ThreadsPerChild25 MaxRequestsPerChild0 </IfModule> #BeOSMPM #StartThreads:howmanythreadsdoweinitiallyspawn? #MaxClients:maxnumberofthreadswecanhave(1thread==1client) #MaxRequestsPerThread:maximumnumberofrequestseachthreadwillprocess <IfModulempm_beos_module> StartThreads10 MaxClients50 MaxRequestsPerThread10000 </IfModule> #NetWareMPM #ThreadStackSize:Stacksizeallocatedforeachworkerthread #StartThreads:Numberofworkerthreadslaunchedatserverstartup #MinSpareThreads:Minimumnumberofidlethreads,tohandlerequestspikes #MaxSpareThreads:Maximumnumberofidlethreads #MaxThreads:Maximumnumberofworkerthreadsaliveatthesametime #MaxRequestsPerChild:Maximumnumberofrequestsathreadserves.Itis #recommendedthatthedefaultvalueof0besetforthis #directiveonNetWare.Thiswillallowthethreadto #continuetoservicerequestsindefinitely. <IfModulempm_netware_module> ThreadStackSize65536 StartThreads250 MinSpareThreads25 MaxSpareThreads250 MaxThreads1000 MaxRequestsPerChild0 MaxMemFree100 </IfModule> #OS/2MPM #StartServers:Numberofserverprocessestomaintain #MinSpareThreads:Minimumnumberofidlethreadsperprocess, #tohandlerequestspikes #MaxSpareThreads:Maximumnumberofidlethreadsperprocess #MaxRequestsPerChild:Maximumnumberofconnectionsperserverprocess <IfModulempm_mpmt_os2_module> StartServers2 MinSpareThreads5 MaxSpareThreads10 MaxRequestsPerChild0 </IfModule> #WinNTMPM #ThreadsPerChild:constantnumberofworkerthreadsintheserverprocess #MaxRequestsPerChild:maximumnumberofrequestsaserverprocessserves <IfModulempm_winnt_module> ThreadsPerChild150 MaxRequestsPerChild0 </IfModule>
我们如果是windows系统一般是使用最后面的winntmpm来操作了。