网络通信 频道

网站故障处理记实:apache引起的麻烦

  【IT168 报道】春节还没过完就接到同事的电话,说论坛访问速度慢,遭致用户强烈的投诉,要求我马上处理。这个bbs是运行在Redhat AS 5上,由apache、mysql、php和discuz组成,有129550位注册会员,同时在线的最高人数11128,按照当前的硬件条件,应该满足访问需求(新上线的HP服务器)。在浏览器输入论坛的url, 果然很慢,再联系朋友帮忙测试,打开网络还是很慢。

恶意攻击?mysql瘫痪?

  先不管这么多,登录到服务器上去看看再做下一步打算。还好,登录比较顺利。运行命令uptime看系统负载,很低呀,再运行命令top,跟uptime得出的结论基本吻合,于是得出结论:系统负载不大。

  是否被恶意攻击呢?基于这个想法,察看系统帐号—打开文件 /etc/passwd,没看见任何异常;运行命令 iptables –L –n 发现防火墙规则仍按我当初设定的策略执行,这些迹象表明,系统不存在安全问题。

  那会不会是mysql的性能问题呢?用mysql客户端连接数据库,察看负载,其情况如下:
  mysql> show processlist;
  +---------+-----------+-----------+--------+---------+------+-------+------------------+
  | Id      | User     | Host   | db    | Command | Time | State | Info           |
  +---------+-----------+-----------+--------+---------+------+-------+------------------+
  | 1917230 | bbsdiscuz | localhost | discuz | Sleep   |  284 |       | NULL             |
  | 1917412 | bbsdiscuz | localhost | discuz | Sleep   |  223 |       | NULL             |
  | 1917442 | bbsdiscuz | localhost | discuz | Sleep   |  222 |       | NULL             |
  | 1917554 | bbsdiscuz | localhost | discuz | Sleep   |  205 |       | NULL             |
  | …………………..省略若干………………………..
  | 1918404 | bbsdiscuz | localhost | discuz | Sleep   |    0 |       | NULL             |
  +---------+-----------+-----------+--------+---------+------+-------+------------------+
  19 rows in set (0.00 sec)

  从输出结果看,连接数和保持时间也在正常范围内。以前曾经有过mysql数据库连接数过多(达到设定的最大连接数)及会话保持时间(Time)过长的事故,从而导致网站访问速度变慢,以至于无法忍受。由此分析,这个故障不是由mysql数据库所引起的。

  现在还剩下apache了,看来该怀疑一下它了。我们先看看有多少个httpd进程,其过程如下:
  [root@web1 ~]# ps aux | grep httpd | grep -v grep | wc -l
  256
  结果刚好是apache默认设置的最大连接数,再执行 [root@web1 ~]# netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'  其运行结果如下所示:
  LAST_ACK 3
  SYN_RECV 628
  …………省略若干…………
  TIME_WAIT 524

0
相关文章