知识屋:更实用的电脑技术知识网站
所在位置:首页 > 操作系统 > linux

linux+php5.3版本出现错误死锁解决

发布时间:2014-09-05 16:57:03作者:知识屋

 PHP-fpm/cgi 搭配 APC或xcache碰到死锁的解决办法。
一台机器一直跑 PHP 5.3.x (fpm或fastcgi方式),常常不定时发生死锁现象。

表现为 FCGI 服务连不上,NGINX报告 502 bad gateway,这时系统里的 php 进程其实都还在,但都卡在 futex() 这一系统调用上,很明显发生死锁了。

查了一些资料,发现这个BUG早在2年前就有人提交过了,至今似乎没有妥善的解决办法,原因在于锁住资源时如果发生脚本超时,则时PHP内部通过 longjmp 跳转来关闭请求,导致锁无法正确释放。

目前在PHP5.3可以在 php.ini 中增加 exit_on_timeout = On 来解决,意思是当发生超时就索性把进程杀死,以便让系统回收这类锁资源,避免死锁。


作者“linux”

(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜