几个星期前,碰到一个特别头疼的问题,各种办法,原因都想过,排查过,就是找不到原因。

就是PHP,在使用其他域名接口的时候,非常慢。

可能问题出现在:

目标服务器响应慢

和服务器建立连接慢

首先,我们需要排除掉目标服务器是否慢,这很简单,找另外的机子去访问同样的接口,或者找目标服务器人员排查。这个不是我们这次的重点。

其次,来分析分析第二个问题。一件一件排查。

先列出可能原因:

IP路由不通(ping 目标IP排查)

域名DNS不对(ping 目标域名排查)

IPv6,IPv4设置不对(wget http://www.baidu.com排查)

排查上面三个都没有问题,然后用wget直接访问接口,飞快。这就头疼了,我就以为是curl的bug了,那就用fsocket来改改,还是一样。file_get_content也是一样。那我就没辙了,网上查,有说是http版本的问题,那好吧,强制使用HTTP 1.0和HTTP 1.1都没解决。还好是测试环境的,不是正式环境。

到这里,就不得不怀疑是PHP出问题了,发现,上面的排查方式不对,都是用shell去排查的,不是在PHP环境内部。严格来说,不形成有效对比。OK,那就在PHP中排查一下吧。

对于第一点

IP路由不通。

那就PHP中用curl 访问对方 对方IP和端口;结果是通畅的.

域名DNS不对

那就CURl 访问对方的域名和端口,不通.

IPv6,IPv4设置不对

这个根本没设置,不存在问题.

综上,基本确定问题,PHP中,DNS不过.域名解析不出来!!!这就是结果,但是在shell中又能够解析!!!

进一步证实想法,PHP中有一个函数,gethostbyname(),能够通过域名,查找到对应IP,试了一下,果然,得不到结果。

突然想起,最近几天,电信有个域名解析服务器(DNS)失效了,可能跟这个有关了。

最终,重启了一下PHP,OK,没问题了。

最后总结了下,很有可能是PHP把DNS域名解析服务器给缓存起来了,不重启,没法更新。这种情况下,碰到解析服务器失败,就会出现上面那种问题。虽然解决方法很简单,但是找到这个问题,还真是费了好大的劲。

php 多个curl 很慢,PHP下CURL异常慢相关推荐

  1. linux curl d 用法,Linux下cURL使用教程之三:curl基本使用

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 在介绍完cURL简介和需要的HTTP协议概述之后.终于可以回归正题,进入curl的使用方法. curl命令格式 基本的使 ...

  2. PHP curl的DNS解析问题(PHP下curl很慢)

    问题: 1 在项目中使用curl函数调用某个接口,发现响应很慢 2 修改host地址为接口服务器的ip地址,响应非常快 首先,在其他服务器上做了个DNS服务,希望能加快DNS解析速度(内网解析),尝试 ...

  3. curl 怎么在xp下使用_Http Post 快速使用

    点击上方蓝字可直接关注!方便下次阅读.如果对你有帮助,麻烦点个在看或点个赞,感谢~ 一直对http很陌生,这次借助libcurl分享一个快速使用http post的案例. 平台:ubuntu16.04 ...

  4. php下curl与file_get_contents性能对比

    为什么80%的码农都做不了架构师?>>>    上一篇讲了 <php使用curl替代file_get_contents>, 后续贴出了curl和file_get_cont ...

  5. linux下curl指令常见使用

    转自:http://www.thegeekstuff.com/2012/04/curl-examples/ 下载单个文件,默认将输出打印到标准输出中(STDOUT)中 curl http://www. ...

  6. Windows下curl的下载与使用

    场景 cURL是一个利用URL语法在命令行下工作的文件传输工具,1997年首次发行. 它支持文件上传和下载,所以是综合传输工具,但按传统,习惯称cURL为下载工具. cURL还包含了用于程序开发的li ...

  7. php curl 无法获取网页内容,php curl获取网页内容(IPV6下超时)的解决办法

    原因: 在程序中我对curl获取内容都作了较为严格的超时限制,所以就会造成无法获取内容的问题. 解决方法:设置默认访问为ipv4. php的curl设置方法如下: 代码如下: /** * IPV6下c ...

  8. windows环境下 curl 安装和使用

    curl下载地址:https://curl.haxx.se/download.html,拉到页面最底下,选择红色选中的那个CAB的进行下载,如下图所示: 下载完成后,解压. 解决windows控制台c ...

  9. 综述:弱监督下的异常检测算法

    一.前言 文章标题是: Weakly Supervised Anomaly Detection: A Survey 这是一篇针对"弱监督"异常检测的综述. 其中弱监督异常检测 简称 ...

最新文章

  1. 常见动态内存的管理程序错误
  2. 一致性 Hash 算法学习(分布式或均衡算法)
  3. struts升级:FileUploadInterceptor在struts 2.3.14.2的jar中修改了方法acceptFile中的参数
  4. ShopEx 中规格属性增加时,自动计算其对应的销售价格,同时注意模板中的变量间的计算
  5. java.lang.IllegalArgumentException 严重: Context initialization failed
  6. XSS(跨站脚本攻击)攻击与防御
  7. Linux/Unix/Mac 系统GIT密码存储
  8. 蓝桥杯基础练习之杨辉三角
  9. 4种常用压缩格式在hadoop中的应用
  10. c语言判断字符串的编码,C语言中判断一个char*是不是utf8编码
  11. ZooKeeper(3.4.5) - 原生 API 的简单示例
  12. 最新邮箱匹配正则(邮箱前缀可包含_)
  13. 【java线程篇】守护线程(Deamon)
  14. 山丽防水墙客户端的卸载
  15. 电子书CHM格式转换为PDF文件(转)
  16. OCP、Avalon、Wishbone、IBM Core Connect
  17. 【 unity3d 】Transform.LookAt()方法
  18. thinkphp 6.x 利用 easywechat获取微信公众号粉丝信息
  19. __rept__和__str__
  20. 2005。1。22,闹洞房安排。

热门文章

  1. 新加坡国立大学Robby T. Tan教授招收计算机视觉方向博士生
  2. php中的where用法,ThinkPHP中where()使用方法详解
  3. Windows 搭建 Nexus3 私服
  4. vivado与modelsim联合仿真遇到的问题2
  5. 如何快速一次性卸载所有python包(第三方库)呢?
  6. C++ 入门导引(这是一篇由GPT4写的文章)
  7. 华为nova6se会搭载鸿蒙,华为nova6se和华为nova7se哪个好-哪个性价比更高-参数对比...
  8. 2018年·玉伯《从前端技术到体验科技(附演讲视频)》
  9. 转载内存授予(memory grants)的理解
  10. [微信] 微信商户号 资金解决方案 自动提现 关闭