线上网站网站报2002错误

每个周一都好累....................
每个周一都有那么多的问题 作为一个运维,并且是一个女生,心好累
好了,进入正题,这个周一先是数据库出问题,差点背上删库跑路的锅,不过还好,老天保佑我.............
此次线上的项目出问题了,用户反映观看我们的视频会出现 服务器错误信息,不过这个错误的话是瞬间性的,可能5分钟出现一次。周一我处理完数据库问题,披着劳累的心又来处理此问题。项目环境是lnmp,全部服务是阿里云的,数据库是阿里云RDS mysql,我检查服务器报错日志,查不到任何有意义的信息,最终报错信息在web的JS页面查出问题,报错显示:{"error":{"message":"An exception occured in driver: SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known","code":0}} 通过此问题进行一步一步排查。
排查思路:通过报错信息得到的信息有两点 域名解析造成DNS问题 数据库层面问题 服务器vpc网络 数据库经典网络,网络类型不同引发的网络延迟
第一步:在测试环境复现此问题,让研发人员把测试库数据库连接地址改为线上库,查看测试环境并不会出现此问题
第二部:在生产上新配置一个站点,新解析一个域名,发现问题存在,排除域名问题。
第三部:数据库问题已经排除,域名问题已经排除,最后检查服务器问题。重启nginx php-fpm问题
最终解决!
此问题出现的原因:重启php-fpm后服务不会出现此问题,分析php-fpm进程有假死的状态,导致出现瞬间性的错误产生。
当时发生问题后,百度了一些文章,和我们出现的报错一样,仅供大家参考
https://help.aliyun.com/knowledge_detail/92120.html?spm=5176.11065259.1996646101.searchclickresult.38bf1fcdSKxZWB

出现问题,排查思路尤为重要。
排查思路,在日后的工作经验中望慢慢提升,加油!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章