http适用于三种MPM工作模式:
预继承MPM:预继承模式,有一个主控制过程,然后几个子过程。每个子流程都有单独的线程响应客户的请求,相对占用运行内存,但相对稳定。它可以设置大量进程和最小进程数。它是最古老的模式,也是最稳定的模式。它适用于页面浏览量不是很大的情况。
这个多解决方案控制模块(MPM)完成了一个非线程、预分叉的web服务器。每个网络服务器进程都可以响应传入的请求。父进程管理网络服务器池的大小。它适用于这些必须阻止线程的网站,以便更好地兼容非线程安全的库。保护每一个请求也是最好的MPM,所以单个请求的问题不容易伤害所有其他请求。这种MPM具有很强的自我调节能力,因此很少需要调整其配备的命令。最重要的是,MaxRequestWorkers足够大,可以解决您期望接受的所有高并发请求,但又足够小,可以确保所有进程都有足够的物理RAM。
前期工作相关设备:
StartServers 100#纪录刚开始进程为100当没人浏览的情况下就变为为80个 MinSpareServers 50 MaxSpareServers 80 ServerLimit 2560#最多进程数,最高值20000 MaxRequestWorkers 2560#较大的高并发线程数,默认设置256 MaxConnectionsPerChild 4000#子进程数最多能解决的请求总数。在解决MaxRequestsPerChild个 请求以后,子进程可能被父进程停止,此刻子进程占有的运行内存便会释放出来(为0时始终不释放出来) MaxRequestsPerChild4000 #从httpd.2.3.9刚开始被MaxConnectionsPerChild替代 worker---多路复用的多进程I/O实体模型,多进程多线程*一个主进程:形成M个高进程,每个子进程承担生成N个线程,每个线程响应一个请求,高并发响应请求:mn**
是多进程多线程混合实体模型。有一个 *** 纵过程,它启动几个子过程。每个子进程都包含一个固定线程,用于解决请求。当线程不足时,会重新启动一个新的子进程,然后在进程中重新启动线程来解决请求。因为它使用线程来解决请求,所以可以承担更高的并发性。
与工人和事件模式相关的设备
ServerLimit 16 #数最多worker进程数Upperlimitonconfigurablenumberof processes StartServers 10 #Numberofchildserverprocessescreatedatstartup MaxRequestWorkers 150 #Maximumnumberofconnectionsthatwillbeprocessed simultaneously MinSpareThreads 25#每一个work数最多空余25个较大空余75个 MaxSpareThreads 75 ThreadsPerChild 25 #Numberofthreadscreatedbyeachchildprocess每一个线程i *** 纵的数量 event---量化策略实体模型,提升了一个监视线程一个主进程:形成M个高进程,每个子进程承担生成N个线程,每个线程高并发响应一个请求。
请求:m*n,有专业的监管线程来管理保活线程。当有真实请求时,将请求发送到服务项目线程,实现后允许释放。这提高了分布式系统场景中请求解决的能力。
事件MPM:Apache中一种全新的方式,属于定量策略实体模型(epoll),每个进程响应几个请求,在今天的版本号中已经是一种稳定可用的方式。它和worker模式很像,但很大的区别在于它解决了keep-alive场景下长期被占用线程的资源消耗问题(有些线程基本上中途不请求回来,甚至直到请求超时,因为被keep-alive和空)挂起)。在MPM事件中,会有一个专业线程来管理方法的保活线程。当一个真正的请求回来时,它会被发送到服务项目线程,在实现后被释放。这提高了分布式系统场景中请求解决的能力。
事件只有在推送数据信息时才开始创建连接,连接请求会启动工作线程,即应用了TCP的一个选项,称为延迟接受连接TCP_DEFER_ACCEPT。增加这个选项后,如果手机客户端只进行TCP连接,不推送请求,就不容易启动accept的实际 *** 作,也不容易启动工作线程上班,就容易防止**(TCP连接)。
优点:单线程响应多个请求,占用的运行内存越来越少,主要在分布式系统中比较好。会有专业的线程来管理keep-alive方法的线程。当一个真实的请求回来时,请求会被发送到服务项目线程,实现后允许释放
[/S2/
规定灵活性较高的网站可以选择应用线程的MPM,即工作者或事件
必须可信或兼容旧手机软件的网站可以应用prefork(传统企业)。
与工人和事件模式相关的设备
ServerLimit 16 #数最多worker进程数Upperlimitonconfigurablenumberof processes StartServers 10 #Numberofchildserverprocessescreatedatstartup MaxRequestWorkers 150 #Maximumnumberofconnectionsthatwillbeprocessed simultaneously MinSpareThreads 25#每一个work数最多空余25个较大空余75个 MaxSpareThreads 75#每一个线程i *** 纵的数量 ThreadsPerChild 25 #Numberofthreadscreatedbyeachchildprocess转换应用程序的MPM
#开启要开启的MPM有关的LoadModule命令就可以,其他未开启的二项必须在行首加#注解 #三种挑选一种就可以的 vim/etc/httpd/conf.modules.d/00-mpm.conf #LoadModulempm_prefork_modulemodules/mod_mpm_prefork.so #LoadModulempm_worker_modulemodules/mod_mpm_worker.so LoadModulempm_event_modulemodules/mod_mpm_event.so注意:没有必要打开几个MPM控制模块,否则会出现以下错误
AH00534:httpd:Configurationerror:MorethanoneMPMloaded.案例:查询CentOS8和CentOS7的默认MPM工作模式
#查询CentOS8默认设置的MPM工作模式 [root@centos8~]#httpd-M|grepmpm AH00558:httpd:Couldnotreliablydeterminetheserver'sfullyqualifieddomain name,usingcentos8.localdomain.Setthe'ServerName'directivegloballyto suppressthismessage mpm_event_module(shared) #查询CentOS7默认设置的MPM工作模式 [root@centos7~]#httpd-M|grepmpm AH00558:httpd:Couldnotreliablydeterminetheserver'sfullyqualifieddomain name,usingcentos7.localdomain.Setthe'ServerName'directivegloballyto suppressthismessage mpm_prefork_module(shared)案例:更改CentOS8的prefork实体模型
[root@centos8~]#vim/etc/httpd/conf.modules.d/00-mpm.conf [root@centos8~]#grepLoad/etc/httpd/conf.modules.d/00-mpm.conf #oneofthefollowingLoadModulelines.Seethehttpd.conf(5)man LoadModulempm_prefork_modulemodules/mod_mpm_prefork.so #LoadModulempm_worker_modulemodules/mod_mpm_worker.so #LoadModulempm_event_modulemodules/mod_mpm_event.so [root@centos8~]#httpd-M|grepmpm AH00558:httpd:Couldnotreliablydeterminetheserver'sfullyqualifieddomain name,usingcentos8.localdomain.Setthe'ServerName'directivegloballyto suppressthismessage mpm_prefork_module(shared)部分内容来自https://www.cnblogs.com/luck-pig/p/12007045.html.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)