松窗竹户

2009年11月15日

CentOS下NGINX+PHP-CGI占100%CPU问题

类归于: 搜索引擎优化SEO, 服务器专栏 — 标签:, , , , — bugx @ 19:42

上周在迁移网站到新服务器的时候,碰到了PHP-CGI经常跑着跑着占到100%CPU,然后进程全部卡死,网站没有响应。

在经过一天的观察下,在FPM下有错误日志

11月 13 21:19:21.219359 [NOTICE] fpm_got_signal(), line 48: received SIGCHLD
11月 13 21:19:21.219415 [NOTICE] fpm_children_bury(), line 194: child 7528 stopped for tracing
11月 13 21:19:21.219426 [NOTICE] fpm_php_trace(), line 139: about to trace 7528
11月 13 21:19:21.219579 [ERROR] fpm_trace_get_long(), line 78: ptrace(PEEKDATA) failed: 输入/输出错误 (5)
11月 13 21:19:21.220292 [NOTICE] fpm_php_trace(), line 167: finished trace of 7528

google了一下在nginx论坛上也有人问起这个问题,但是没有解决方法。

开始无从下手,换成Spawnfcgi管理php-cgi。结果跑了一个晚上,还以为解决的时候,当我早上登录服务器发现,诡异的事情又出现了,CPU急剧上升100%,负载上升到80-100多。

因为前面分析过,排除mysql的问题导致,因为和以前uchome1.5的beta版由于一个语句里缺少索引字段,导致的PHP-CGI挂掉的现象不一样。mysql死锁导致的异常不会cpu上升100%,只上升负载。问题就缩小到PHP相关上,由于FPM与spawnfcgi都出现问题,也不应该是CGI上的问题,那么只有PHP版本和ZendOptimizer或者eaccelerator之间的问题,想想最有可能的就是eaccelerator,网站上只有一个插件用到ZendOptimizer。 于是把eaccelerator降级下,想到当时为了追新,用了eaccelerator-0.9.6-rc1,而且这个版本改动较大,兼容了PHP6。

将版本换成eaccelerator-0.9.5.3,用spawnfcgi跑了一天多,没有出现问题。估计是瞎猫碰死老鼠撞对了。

环境为

CentOs 5.3 X86—64

nginx-0.8.20

ZendOptimizer-3.3.9-linux-glibc23-x86_64

php-5.2.11

eaccelerator-0.9.5.3

Share and Enjoy:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google

5 条评论 »

  1. Dear Author http://www.bugx.org !
    Quite right! I think, what is it good idea.

    评论 由 golovlev Windows NT 4.0 Internet Explorer 5.5 — 2009年12月4日 @ 14:18

  2. 我现在也出现fpm_trace_get_long(), line 78: ptrace(PEEKDATA) failed: 输入/输出错误 (5)

    我看了你的文章之后,我把eaccelerator关掉了。

    但是 问题依旧。。。显然这个问题不是eaccelerator 造成的 。。

    评论 由 Christ CHINA Windows XP Internet Explorer 8.0 — 2010年03月30日 @ 12:41

  3. 我出现的问题确实是这样解决的,你的可能其他问题导致的

    评论 由 bugx CHINA Windows Server 2003 Mozilla Firefox 3.6.3 — 2010年04月13日 @ 10:44

  4. 同上..我也是出现同样的问题

    评论 由 稀饭 Windows Server 2003 Internet Explorer 6.0 — 2010年06月2日 @ 01:10

  5. 一般还有一种情况就是某些PHP进程占用大,那么你需要看看你的MYSQL是否运行的正常,查询进程是不是卡住。还有PHP脚本超时的文件检查下

    评论 由 bugx CHINA Windows Server 2003 Mozilla Firefox 3.6.3 — 2010年06月2日 @ 09:40

这篇文章上的评论 RSS feed TrackBack URL

留下评论

WordPress 所驱动