httpd中工作模型的比较

2022-06-30 19:57:37 浏览数 (1)

httpd工作模式中的prefork、worker、event优缺点:

http服务,需要客户端和服务器端建立连接,httpd有三种工作模式:prefork worker event

优点:在资源够用的情况下服务稳定

worker:这个就是改进之前的工作模型,就是让一个进程处理多个响应.

event:这样模型就是让一个进程产生多个线程,让每个线程处理处理客户端请求,并且每个线程可以处理多个线程

查看MPM,可以使用httpd -l命令来查看当前加载的MPM模块

[root@s ~]# httpd -l

Compiled in modules:

core.c

prefork.c

http_core.c

mod_so.c

http 2.2和2.4的区别

httpd2.2 可以通过修改配置文件来改变当前服务器所试用的模块.

http2.4 :两种方式: 静态模块 动态模块

如果把MPM编译成静态模块,那么要改变MPM,只能通过重新编译安装httpd来修改.

[root@s yum.repos.d]# ps uax |grep httpd

root      2918  0.0  0.3 119088  1616 pts/2    S   15:14  0:00 vi httpd

root      2997  0.0  0.5 183720  2720 ?        Ss  15:33  0:00 /usr/sbin/httpd

root      3001  0.0  0.1 103252  824 pts/1    S   15:33  0:00 grep httpd

去掉 /etc/sysconfig/httpd 这行的注释

HTTPD=/usr/sbin/httpd.worker

[root@s yum.repos.d]# ps aux |grep http

root      2918  0.0  0.3 119088  1616 pts/2    S   15:14  0:00 vi httpd

root      3029  0.0  0.8 186560  4164 ?        Ss  15:34  0:00 /usr/sbin/httpd.worker

apache    3034  0.0  0.6 596356  3340 ?        Sl  15:35  0:00 /usr/sbin/httpd.worker

apache    3035  0.1  0.6 596356  3336 ?        Sl  15:35  0:00 /usr/sbin/httpd.worker

apache    3036  0.1  0.6 596356  3340 ?        Sl  15:35  0:00 /usr/sbin/httpd.worker

root      3150  0.0  0.1 103252  828 pts/1    S   15:35  0:00 grep http

<IfModule prefork.c> 如果prefork.c模块存在,则定义在标签内的参数有效

StartServers      8 服务开启默认启动的工作进程数,不包含主进程

MinSpareServers    5 最少空闲进程数;

MaxSpareServers  20 最大空闲进程数;

ServerLimit      256 最大活动进程数;

MaxClients      256 并发请求的最大数,一条进程最多处理多少个请求

MaxRequestsPerChild  4000 每个子进程在生命周期内所能服务的最多请求个数

</IfModule>

<IfModule worker.c>

StartServers        4    服务开启时,启动的子进程的个数;

MaxClients        300    并发请求的最大数;

MinSpareThreads    25    最小空闲线程数;

MaxSpareThreads    75    最大空闲进程数;

ThreadsPerChild    25    每个子进程线程数;

MaxRequestsPerChild  0    每个子进程在生命周期内所能够服务的最多请求个数,0表示不限定

</IfModule>

httpd 2.4中event参数

<IfModule mpm_event_module>

StartServices      默认进程数

MinSpareThreads    最小空闲进程数

MaxSpareThreads    最大空闲进程数

ThreadsPerChild    每个子进程可以生成的线程数

MaxReqestWorkers  最大线程数量

MaxConnectionPerchild 子进程的最大连接数,当达到设置值以后,APACHE就会结束当前的子进程

总结:    安全和效率中考虑参数设置,并且自己测试,才能得到比较满意的配置

0 人点赞