httpd进程(网络转载)

1.为什么会有多个httpd进程?
~/WebSphere/HTTPServer/logs/httpd.pid
记录httpd守护进程的进程号。
httpd能自动复制其自身,因此系统中有多个httpd进程;
但只有一个进程为最初启动的进程,它为其他进程的父进程;
对父进程发送信号将影响所有的httpd进程;
httpd.pid定义的文件中就记录httpd父进程的进程号 

2.会有多少个httpd进程?
httpd进程子进程的个数配置在http.conf的StartServers参数中:
~/WebSphere/HTTPServer/Plugins/config/httpd.conf
< IfModule worker.c>
StartServers X

</IfModule>

查询方法:
ps -ef|grep httpd|wc -l 

3.httpd为什么需要多进程?
Worker
worker支持多线程和多进程混合模型的MPM;
由于使用线程来处理,所以可以处理相对海量的请求,而系统资源的开销要小于基于进程的服务器;
但是,worker也使用了多进程,每个进程又生成多个线程,以 获得基于进程服务器的稳定性;
在configure –with-mpm=worker后,进行make编译、make install安装。
在缺省生成的httpd-mpm.conf中有以下默认配置段:
<IfModule worker.c> 
StartServers 2 
MaxClients 150 
MinSpareThreads 25 
MaxSpareThreads 75 
ThreadsPerChild 25 
MaxRequestsPerChild 0 
< /IfModule> 
Worker由主控制进程生成“StartServers”个子进程;
每个子进程中包含固定的ThreadsPerChild线程数,各个线程独立地处理请求;
同样, 为了不在请求到来时再生成线程,MinSpareThreads和MaxSpareThreads设置了最少和最多的空闲线程数;
而MaxClients 设置了同时连入的clients最大总数;
如果现有子进程中的线程总数不能满足负载,控制进程将派生新的子进程;
MinSpareThreads和 MaxSpareThreads的最大缺省值分别是75和250;
这两个参数对Apache的性能影响并不大,可以按照实际情况相应调节;
ThreadsPerChild是worker MPM中与性能相关最密切的指令,ThreadsPerChild的最大缺省值是64;
如果负载较大,64也是不够的,这时要显式使用 ThreadLimit指令,它的最大缺省值是20000;
Worker模式下所能同时处理的请求总数是由子进程总数乘以ThreadsPerChild 值决定的,应该大于等于MaxClients;
如果负载很大,现有的子进程数不能满足时,控制进程会派生新的子进程;
默认最大的子进程总数是16,加大时 也需要显式声明ServerLimit(最大值是20000);
需要注意的是,如果显式声明了ServerLimit,那么它乘以 ThreadsPerChild的值必须大于等于MaxClients,
而且MaxClients必须是ThreadsPerChild的整数倍,否则 Apache将会自动调节到一个相应值。 

4.怎样查看httpd进程和线程的详细信息?
查看进程信息:
ps -eLf |grep httpd|grep -v grep
查看线程信息:
ps -eLf |grep httpd|grep -v grep|awk '{print $4}'

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值