apache安全与性能优化


1.查看模式
apache -l |egrep "worker|prefork"


prefork模式
prefork使用的是多个子进程,每个子进程只有一个线程,每个进程在某个确定的
时间只能维持一个连接。


工作原理:
  控制进程最初建立若干个子进程,为了不在请求到来时再生成子进程,所以要根据需求
不断的创建子进程,最大可以达到每秒32个知道满足需求为止。
优点:效率高,稳定,安全,对于线程调试困难的平台来说,调试更加容易些
缺点:和worker模式相比消耗资源多
<IfModule mpm_prefork_module>
    StartServers             10 #服务启动的初始进程数
    MinSpareServers          10 #允许启动最小空闲进程数,如果空闲进程小于设定值,apache会自动建立进程,
                               #如果服务器并发大,可以考虑加大此值
    MaxSpareServers         15 #允许启动最大空闲进程数,如果空闲进程大于这个值,apache会kill掉多余的进程,
                                #如果服务器负载大,可以考虑加大此值
    MaxRequestWorkers      1000 #允许启动的最大进程数,apache同时处理的最大请求(最大并发数),是对apache性能
                               #影响最大的参数。
    MaxConnectionsPerChild   5000 #每个进程允许的最大请求数,每个进程处理了超过此值的请求时就会自动销毁
                               #0表示无限,即子进程不销毁。如果缺省为0可以使每个子进程处理更多的请求,
                               #但如果设置成非零值也有两点好处:1.可防止意外的内存泄漏,2在服务器负载下降的时候会自动减少子进程数


</IfModule>
查看apache并发连接数
ps -ef |grep http|grep -v grep|wc -l
 
worker模式
  worker模式是线程与进程的结合,在worker模式下会有多个子进程,每个子进程又会有多个线程。每个线程在某个确定
的时间只能维持一个连接。
  工作原理:
  由主控制进程生成若干个子进程,而每个子进程中又包含固定的线程数,各个线程独立处理请求,同样为了不在请求到来时再生成
线程,在配置文件中设置了最大和最小的空闲线程数及所有子进程的线程总数,如果现有子进程的线程总数不能满足并发及负载,控制
进程将派生新的子进程。
IfModule mpm_worker_module>
    StartServers             3 #启始子进程数
    MinSpareThreads         75 #最小空闲线程数
    MaxSpareThreads        250 #最大空闲线程数
    ThreadsPerChild         25 #每个子进程的线程数
    MaxRequestWorkers      400 #开启的最大线程数
    MaxConnectionsPerChild   0 #每个进程服务的最大请求数,超过这个数销毁进程,0表示无限制
</IfModule>
优点:内存占用比prefork模式低,适合高并发,高流量HTTP服务
缺点;假如一个线程崩溃,整个进程就会连同其任何线程一起"死掉"由于线程共享
内存空间,所以一个程序在运行时必须被系统识别为"每个线程都是安全的"。服务稳定性不如prefork模式


默认的子进程总数是16,如需加大需要声明ServerLimit的值(最大值2000)
MaxRequestWorkers <= 总进程数(ServerLimit) *ThreadsPerChild
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值