apache网站访问慢的实践处理过程

一、故障描述

    客户业务是基于LAMP架构的php站点,由于每秒钟访问量在230左右,导致了用户的网站访问很缓慢,打开时间在11秒左右,严重影响了业务和客户体验度。

二、排查过程

2.1 从服务器系统方面考虑:CPU、内存、IO、网络等综合查看都很正常;

2.2 从数据库方面排查:数据库压力不大,运行正常;

2.3 查看apache的进程数75个,显然和现在的并发量相差很大,解决方法就是调整apache的进程数。

三、处理过程

3.1 首先了解Apache采用的MPM(Multi -Processing Modules,多道处理模块)

    MPM是Apache的核心,它的作用是管理网络连接、调度请求。Apache2.0中MPM有3种类型,分别为perfork、worker和event:

A.perfork从Apache1.3中继承下来的,它采用的是进程管理方式,可以提供更可靠的性能和更好的兼容性;

B.worker是Apache2.0中新增加的方式,它采用了线程控制方法,可以比perfork更节约系统开销、处理更多的数据量,但同时兼容性并不是很好,很多旧的程序无法工作在worke下;

C.event仍处于试验阶段,它为每个任务分配不同的进程池,目前不应该采用。

3.2 通过命令 httpd -l 可以获取目前Apache采用的是perfork MPM模式

[root@localhost apache]# httpd -l

Compiled in modules:

      core.c

      prefork.c

      http_core.c

      mod_so.c

3.3 修改配置文件httpd-mpm.conf重要参数

%E8%AE%BF%E9%97%AE%E6%85%A2.png?version=

    重启httpd 但是查看了配置不生效,经过查看日志错误:

WARNING: MaxClients of 1500 exceeds ServerLimit value of 256 servers,

 lowering MaxClients to 256.  To increase, please see the ServerLimit

 directive.

[Fri Dec 29 02:55:50 2006] [warn] WARNING: Attempt to change ServerLimit ignored during restart

[Fri Dec 29 02:55:50 2006] [notice] Apache configured -- resuming normal operations

3.4 针对日志添加了ServerLimit和ThreadLimit这两个指令

vim httpd-mpm.conf

ServerLimit 768

MaxClients 768

    具体参数大小衡量参考http://blog.csdn.net/huoyunshen88/article/details/34105561

3.5 停止服务器再重启配置生效

    ServerLimit和ThreadLimit这两个指令决定了活动子进程数量和每个子进程中线程数量的硬限制。要想改变这个硬限制必须完全停止服务器然后再启动服务器。

四、故障总结

    之前看到很多apache针对StartServers、MinSpareServers、MaxSpareServers等优化的文章,而少有在生产环境中针对apache高并发的优化,这次的故障解决让我感觉实践出真理。




本文转自 freeterman 51CTO博客,原文链接:http://blog.51cto.com/myunix/1975537,如需转载请自行联系原作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值