关于导致PHP假死的一个APCU的BUG

最近遇到了一个比较棘手的问题,服务器莫名其妙就挂了。查看nginx日志,报HTTP 499错误码,说明PHP对nginx未响应了。查看php进程,发现进程存在,查看代码报错日志,并未发现报错。重启php后服务器恢复。但是恢复20分钟后还是挂了。

再次查看php slowlog发现端倪,有慢日志,从慢日志定位到代码,报错指向的代码是

apcu_store()

初步判断是apcu的问题。

查看apc配置,

php -i | grep apc

发现apcu配置的内存只有32M,

修改配置,将apcu内存扩大到4G,问题解决,再未发生过挂的情况。

vim /etc/php/7.0/fpm/conf.d/20-apcu.ini

extension=apcu.so
apc.enabled=1
apc.shm_size=4096M
apc.enable_cli=1

到apcu官网查看相关问题,发现是apcu自己bug,

https://github.com/krakjoe/apcu/issues/333

大概是apcu_store中存在lock死锁的问题。

希望给遇到相关问题的朋友一点帮助。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值