Chinaunix

标题: 系统日志里php-cgi频繁报错,请大家帮忙看看这个错误! [打印本页]

作者: storysky    时间: 2009-12-08 09:53
标题: 系统日志里php-cgi频繁报错,请大家帮忙看看这个错误!
kernel: php-cgi[12476]: segfault at 00007fff118e3ff8 rip 00000000006dfddc rsp 00007fff118e4000 error 6
kernel: php-cgi[12708]: segfault at 00007fff118e3ff8 rip 00000000006dfddc rsp 00007fff118e4000 error 6
kernel: php-cgi[12655]: segfault at 00007fff118e3fb8 rip 00000000006d9619 rsp 00007fff118e3ff8 error 6

服务器负载高的时候,这个错误就出的很频繁,可是找不到是什么原因导致的,麻烦大家帮忙分析

服务器用的是 nginx+php+memcached
作者: blueswxs    时间: 2009-12-08 09:53
原帖由 storysky 于 2009-12-8 09:53 发表
kernel: php-cgi[12476]: segfault at 00007fff118e3ff8 rip 00000000006dfddc rsp 00007fff118e4000 error 6
kernel: php-cgi[12708]: segfault at 00007fff118e3ff8 rip 00000000006dfddc rsp 00007fff118e4 ...



segfault  段错误。
写C程序的人这错误经常见到。我猜测是进程数量过多导致地址越界报出的错误。

解决办法:
   限制php-cgi进程数量,具体多少你测试一下便知,也就是战争中的那种添油战术。一点一点增加进程数直到出错,你就测出底线了。
   限制的带来的弊端不言自明,解决办法无非就是负载均衡,曾加服务器。

   楼主是Nginx+FastCGI吧.............
作者: badb0y    时间: 2009-12-08 10:09
没见过这种错误,,网页是不是显示502
作者: storysky    时间: 2009-12-08 11:02
网页比较正常
作者: 7717060    时间: 2009-12-08 13:19
好像是你的php模块太多了导致的问题。
作者: kns1024wh    时间: 2009-12-08 13:35
标题: 回复 #1 storysky 的帖子
看看进程信息
作者: 7717060    时间: 2009-12-08 13:40
原帖由 kns1024wh 于 2009-12-8 13:35 发表
看看进程信息

不是每个进程残生注销都会发生的,有点海底捞针的感觉,不知道lz是有好的做法,能否细说

[ 本帖最后由 7717060 于 2009-12-8 14:28 编辑 ]
作者: storysky    时间: 2009-12-08 13:53
原帖由 7717060 于 2009-12-8 13:40 发表

不是没个进程残生注销都会发生的,有点海底捞针的感觉,不知道lz是有好的做法,能否细说


没有好办法啊,所以才来这里,从上线到现在一直都有这个问题,烦啊
作者: 7717060    时间: 2009-12-08 13:57
原帖由 storysky 于 2009-12-8 13:53 发表


没有好办法啊,所以才来这里,从上线到现在一直都有这个问题,烦啊

我的服务器里也偶尔出现这问题,但是我以前问过一个对php和apache做二次开发的人,他说有可能是服务器的php模块过多原因,
不知道lz是否这情况,如果解决请到时来这与大家分享啊
作者: storysky    时间: 2009-12-08 14:18
php模块过多?晕 我看看安装时候加了几个模块
作者: storysky    时间: 2009-12-08 14:24
的确安装了不少,难道真的是这个原因,可是这些都是有用的啊,没法从新编译了,而且这个服务器是不能停机的
作者: 7717060    时间: 2009-12-08 14:27
原帖由 storysky 于 2009-12-8 14:24 发表
的确安装了不少,难道真的是这个原因,可是这些都是有用的啊,没法从新编译了,而且这个服务器是不能停机的

这错在我这报了有一段时间了但是并没有发生什么大问题,当然你可以加服务器来解决,呵呵。
作者: chenyx    时间: 2009-12-08 14:29
加服务器做负载均衡吧
作者: 7717060    时间: 2009-12-08 14:37
多问一句lz装eAccelerator吗?
作者: storysky    时间: 2009-12-09 10:35
没装那个
作者: 7717060    时间: 2009-12-09 11:00
原帖由 storysky 于 2009-12-9 10:35 发表
没装那个

哦。
作者: storysky    时间: 2009-12-12 18:48
原帖由 blueswxs 于 2009-12-8 09:53 发表



segfault  段错误。
写C程序的人这错误经常见到。我猜测是进程数量过多导致地址越界报出的错误。

解决办法:
   限制php-cgi进程数量,具体多少你测试一下便知,也就是战争中的那种添油战术。一点一 ...


确实是 php fast cgi 可是服务器的负载并不高啊,nginx每秒最高也就300-500的访问量,即使在100多的时候也会报这个错误,要是负载高的时候报这个也就罢了,他是不管高低一直报,而且有时并发超过了300 ,nginx没挂 ,就是外网无法访问了报 502错误,重启nginx和memcached 后就正常了
作者: blueswxs    时间: 2009-12-14 14:12
原帖由 storysky 于 2009-12-12 18:48 发表


确实是 php fast cgi 可是服务器的负载并不高啊,nginx每秒最高也就300-500的访问量,即使在100多的时候也会报这个错误,要是负载高的时候报这个也就罢了,他是不管高低一直报,而且有时并发超过了300 ,ng ...



负载不高的话,我的思路是这样:

一、先将你现在应用备份或在另一测试环境复原错误.(这是好习惯哦)
二、出错的FastCGI服务器上,更换版本。一般三次,低稳定版本(RPM)、高稳定版本(RPM、SOURCE)。
三、应用程序作代码检查(一般不是管理员事,找程序员)。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2