Discuz教程网

Discuz论坛后台卡及502错误的解决思路

[复制链接]
authicon dly 发表于 2012-3-13 21:57:16 | 显示全部楼层 |阅读模式
同事反应说Discuz登录论坛后台非常慢,时不时出现502错误;好不容易登上论坛,根本无法在后台操作。
  自己登录后,在后台也是无法操作,卡住不动了。登录服务器,负载正常,但发现php-cgi竟然没有一个在运行。在php-fpm的日志中,频繁出现timeout,发现是写入discuz日志的时候php卡住了。
  使用Discuz论坛的朋友们不知是否遇到过论坛后台登陆非常慢的情况,本文介绍的分析思路和解决方案可能会对你有所启发。
  错误描述
  同事反应说Discuz登录论坛后台非常慢,时不时出现502错误;好不容易登上论坛,根本无法在后台操作。自己登录后,在后台也是无法操作,卡住不动了。
  故障分析
  登录服务器,负载正常,但发现php-cgi竟然没有一个在运行。按照以前的经验,有以下几点原因:
  MySQL慢查询:登录mysql服务器后,执行show full process后,并没有发现查询执行时间长的sql记录,mysql错误日志也没有报错。
  重启php-fpm:service php-fpm restart,再次登录后台的时候,操作还是卡,看来不是这个原因。
  恶意攻击:通过分析web日志,没有发现恶意攻击的记录。联系硬防客服,抓包分析了一会,没有在数据包中发现恶意数据,不过倒是发现一个ip在3-4秒内访问管理页面,硬防上屏蔽该ip后,后台还是无法访问。
  PHP日志分析:在php-fpm的日志中,频繁出现Nov 22 00:09:05.217416 [WARNING] fpm_request_check_timed_out(), line 158: child 23796, script '/data/www/bbs/admincp.php' (pool default) execution timed out (300.099551 sec), terminating 执行脚本文件超时300秒。我对php-fpm.conf 对执行超时限制在300秒,超过这个数字就结束该进程,所以肯定是有什么东西,导致php卡住了。
  了解此点之后,通过lsof -n | grep php-cgi | grep /data0/grep -v grep 查找php-cgi停在哪个文件或目录,发现原来停在在discuz日志的目录。
1323500.jpg
  解决思路
  将php-cgi故障反应给了同事,经同事研究分析,共享存储,有写入缓慢的现象。如果取消日志写入,登录后台操作,正常,反之,一旦开启,就会像起先那样,后台操作卡住了。所以可以判断问题出在存储的写入缓慢。
  检测了存储,整体写入是正常的,检测过程也显示正常,所以怀疑跟文件系统有关。
  临时解决方法:将日志目录移到本地服务器,并做好软连接,观察日志是否写入正常。
  彻底解决方法:换MooseFS代替NFS。过去的近一年时间,我们一直在逐步将论坛从NFS替换成MooseFS,跑下来非常稳定。可以在对论坛升级的时候执行这一步骤。
  作者简介:崔晓辉,网名coralzd,大众网系统管理员,精通网站系统架构、Unix技术。gtalk:coralzd@gmail.com



上一篇:瞄准微博新战场 Discuz X2.5新增微博互通
下一篇:Discuz!十周年全国开放之旅登陆羊城
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2024-5-15 08:29

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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