PHP程序执行报segfault at error 4

这个错误搞了很久,大概晚上将近0点接到朋友请求协助,说这个已经折腾了他们好几天了,研发把代码也扒拉个遍完全没有线索,请求支援,我从晚上12点开始一直折腾到早上快4点,也因为这个是batch每次跑的时间等待的比较久,还有要避开某些正在处理的batch,断断续续搞最后快4点实在是折腾不了,也没什么头绪,满世界查资料没一点进展,就先靠在椅子上睡了
早上6点醒来,仔细想了想这个业务流程,看了batch触发的sql日志,发现SQL其实是有跑一些的,说明不是一运行就程序报错,可能跟量或时长有关系,也因为是出报表的batch,按年处理,每年数据量巨大,然后会生成临时表存放,猜测有没有可能是这个方面的因素导致的,毕竟segfault at从网上查到的信息是说内存地址读取超出区域范围,就开始着手调整PHP的连接数据库相关的参数,尤其是内存大小这块儿的

调整PHP MySQL相关参数

不想太多,跟MySQL相关的,缓存相关的参数都先调整了再说,排查问题时,尤其是没有头绪时,找到参数先往大了加,如果太小可能看不出效果,尤其是Batch这种批处理任务

> vim /etc/php.ini

调整了之后,再测试发现比远来的现象有些改善,本来是一个年度都处理不了就崩了,现在是能跑完一个年度了,这就来劲了,再加大

再次调整部分缓存参数

很明显,跟timeout没太大关系了,重点是cache_size和memory_limit上

调整完成后,Batch任务顺利跑完,跑了将近2个小时

这里面有些参数的值肯定是不合理的, 方向上我努力支援了,参数值的合理性上,就有他们自己去解决吧,



如果想赏钱,可以用微信扫描下面的二维码,一来能刺激我写博客的欲望,二来好维护云主机的费用; 另外再次标注博客原地址 itnotebooks.com 感谢!

CI/CD(五)Flink 应用部署

环境 代码托管:gitlab CI:tekton CD: tekton pipline/task: 阿里云 serverless容器(spot实例且按秒计费) 应用:K8S Flink 应用需要解决的是任务的灵活增...

阅读全文

CI/CD(四)VM 应用部署

环境 代码托管:gitlab CI:tekton CD: 代码自实现多批次部署 pipline/task: 阿里云 serverless容器(spot实例且按秒计费) 应用:ECS(ESS) 应用部署在弹性...

阅读全文

CI/CD(三)GPU 应用部署(k8s)

环境 代码托管:gitlab CI:tekton CD: ArgoCD pipline/task: 阿里云 serverless容器(spot实例且按秒计费) 应用:k8s GPU应用的特殊性在于单个镜像的大小在...

阅读全文

欢迎留言