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


引自他人,原著博客:http://www.jnfangle.com/引文观点如有争议尽情拍砖,我都会转给原著作者

 

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


首先问题都是客户提出网站访问过慢,或者是直接打不开。
遇到这样的问题,查询过程如下:
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  5000

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

相关内容

    暂无相关文章