记一次PHP7+opcache+zmq出现SIGSEGV 问题的查找(一次不成功的bug查找)
2016-07-07 19:23
591 查看
Title: 记一次PHP7+opcache+zmq出现SEGSEGV问题的查找(一次不成功的bug查找)
bug来历自述:
线上代码PHP环境是5.2,为了提升性能(逼格),于是升级为PHP7并使用docker部署,为了方便起见使用yum安装(懒惰),代码经测试后准备部署上线,这个时候问题来了。
在配置FPM后压测,发现当FPM子进程重启时,总会有502错误(fpm日志)。
ba la ba la开始找问题:
1、首先确认是不是FPM的配置问题,找了一圈,没有发现问题
2、从PHP7本身开始,想着PHP7我们都使用了什么新东东,很明显opcache就被这么抓到了。
在配置里面关闭opcache,测试没有再出现502,说明opcache有问题
那到底opcache有问题吗?是不是自己的代码里面有问题呢?
于是乎,开始opcache,只简单的打印一些东东
噢、噢、噢、噢.....
竟然没有发现502了,好吧看来代码里面还是有别的问题
就这么又看到了ZMQ,最终发现当opcahce+ZMQ时会有502...................................
最终懒人的解决方案:
1、继续使用opcache
2、将使用到zmq扩展的文件加入opcache的黑名单里
bug来历自述:
线上代码PHP环境是5.2,为了提升性能(逼格),于是升级为PHP7并使用docker部署,为了方便起见使用yum安装(懒惰),代码经测试后准备部署上线,这个时候问题来了。
在配置FPM后压测,发现当FPM子进程重启时,总会有502错误(fpm日志)。
ba la ba la开始找问题:
1、首先确认是不是FPM的配置问题,找了一圈,没有发现问题
2、从PHP7本身开始,想着PHP7我们都使用了什么新东东,很明显opcache就被这么抓到了。
在配置里面关闭opcache,测试没有再出现502,说明opcache有问题
那到底opcache有问题吗?是不是自己的代码里面有问题呢?
于是乎,开始opcache,只简单的打印一些东东
噢、噢、噢、噢.....
竟然没有发现502了,好吧看来代码里面还是有别的问题
就这么又看到了ZMQ,最终发现当opcahce+ZMQ时会有502...................................
最终懒人的解决方案:
1、继续使用opcache
2、将使用到zmq扩展的文件加入opcache的黑名单里
相关文章推荐
- 安装laravel及其初步使用
- PHP面向对象总结
- 对laravel5概念的理解 -- 观察者模式(Event)
- php学习 left.php
- 转boolean时,值为假的情况
- 关于两个php.ini的说明
- PHP Ajax 跨域问题最佳解决方案
- php多进程pcntl学习(一)
- TPS和QPS的区别
- php中一个"异类"语法: $a && $b = $c;
- IIS6自带FTP安装及配置方法
- IIS 设置FTP用户名和密码
- PHP利用CURL方法模拟POST提交数据并获得返回值的小细节
- 对laravel5概念的理解 -- 门面模式(Facade)
- PHP Warning: date() [function.date]: It is not saf
- yii2 createDirectory 文件上传的保存文件和递归创建文件夹
- 初识ThinkPHP框架
- php处理时间过长时返回空数据
- 使用ChannelSftp.chmod方法进行赋权
- 利用PHP程序设定防止MySQL注入或HTML表单滥用