Apache流量猛增,并发过高导致问题的处理解决方案

近期处理了几个因为流量猛增,并发过高导致的问题。
下面说一下这样问题的处理解决方案。

首先问题都是客户提出网站访问过慢,或者是直接打不开。
遇到这样的问题,查询过程如下:
1,询问客户是否上了投票,查看app域名的访问日志,查看每秒访问是否过多。
2,top查看服务器负载,发现httpd进程很多,但是负载内存都很低。
3,netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'   查看连接数,发现TIME_WAIT几千,说明是并发很高,处理不完导致的超时很多。
4,打开apache的status查看当前状态,打开方法如下:
apache:
修改httpd.conf,增加如下配置,
ExtendedStatus On

  SetHandler server-status
  Order deny,allow
  Deny from all
  Allow from all
  # Allow from 60.195.249.83
修改过apache的配置文件后,重启服务,浏览器打开http://服务器IP/server-status  。
上面链接的里面的返回的信息都很直观,apache的有运行时间,成功处理总数,流量,每秒处理数,每秒流量等信息。
打开链接发现1分钟成功处理了1W的请求,说明并发很高,问题明显是服务器处理不过来,尝试调整apache的进程数。


        StartServers       6
        MinSpareServers    6
        MaxSpareServers    12
        ServerLimit      256
        MaxClients       256
        MaxRequestsPerChild  500
修改ServerLimit与MaxClients,我们部署的系统默认为256,可以尝试调高该参数,参数越高,服务器的负载会越高,但是并发处理的能力越强。谨慎调整,防止宕机。
今天处理的问题,是24核64G内存,我把两个值都调整到了1024,这样每秒大约可以处理800并发以上,但是服务器的负载在4左右,网站访问也正常了,至此,问题解决。
另外,服务器的cpu负载理论峰值应当与CPU核数相同,即4核负载4,8核负载8,如果超过这个负载,服务器就会有挂掉的风险哦。

发表于 2016-2-1 13:05:58 | 显示全部楼层 |阅读模式

回复 | 使用道具 举报

该帖共收到 1 条回复!
发表于 2017-7-27 14:34:00 | 显示全部楼层

回复 | 使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题

QQ|论坛首页|站点统计|小黑屋|云锁论坛-服务器安全技术讨论专业论坛、云锁软件技术讨论 ( 京ICP备14002707号-3  

GMT+8, 2017-11-21 01:03 , Processed in 0.201516 second(s), 29 queries .

Powered by 云锁

© 2014-2018 JOWTO Inc.

快速回复 返回顶部 返回列表