PHP请求HTTP接口响应非常慢

原创 zhaoliang  2018-08-17 18:20  阅读 1,348 views 次

问题描述

更换服务器之前业务都正常,换新服务器后,发现涉及到有对外HTTP请求的业务模块响应出奇的慢,ajax请求普遍出现超时现象,放开ajax超时限制,发现响应时间基本上都要15-20几秒的样子。

定位排错过程

1.服务器上ping各HTTP接口域名,响应时间比较久,延迟时间比较长,找运维同事调整内网DNS(运维同事配错DNS服务器了);
2.问题依旧,PHP加断点,有HTTP接口请求的模块,响应依然很慢;
3.新写独立PHP脚本,测试curl响应时间,发现问题,响应时间比较长,修改成ip访问后,响应正常
4.尝试重启php-fpm服务,再试,响应时间恢复正常

问题剖析

PHP服务在运行过程中,自身也会缓存经常访问域名的DNS信息,调整了域名的DNS后,需要重启PHP服务以更换DNS信息

注意事项

1.DNS配置问题往往都通过系统的ping命令发现并修复,而程序进程自身的DNS缓存经常被忽略
2.如果没有相关的服务器权限,亦可以在cgi服务中使用gethostbyname来确认是否是PHP服务缓存的DNS问题

建议

但凡涉及到非代码层的变更,相应的web服务和程序服务都重启一次,以免因为缓存而耽搁较多时间

本文地址:http://blog.58cm.cn:8088/archives/527.html
版权声明:本文为原创文章,版权归 zhaoliang 所有,欢迎分享本文,转载请保留出处!

评论已关闭!