从最近的Ubuntu16.04开始,使用PHP7,文件获取内容的速度非常慢,并带有到同一服务器的完整url

从最近的Ubuntu16.04开始,使用PHP7,文件获取内容的速度非常慢,并带有到同一服务器的完整url,php,ubuntu,nginx,file-get-contents,php-7,Php,Ubuntu,Nginx,File Get Contents,Php 7,是否可能与以下方面有关: 只是一个想法?可能不会,因为最终,它确实起作用了 这过去是非常快的,现在需要7秒到26秒的时间来制作一个微小的图像,它也存储在本地 只要通过http将代码更改为NOGO,我宁愿不重写我用来修复突然出现的问题的库。如果在本地开发人员机器上本地执行相同的调用,则需要一秒钟的时间 myapp/public/caup_laravel/vendor/intervention/image/src/intervention/image/AbstractDecoder.php 代码:

是否可能与以下方面有关:

只是一个想法?可能不会,因为最终,它确实起作用了

这过去是非常快的,现在需要7秒到26秒的时间来制作一个微小的图像,它也存储在本地

只要通过http将代码更改为NOGO,我宁愿不重写我用来修复突然出现的问题的库。如果在本地开发人员机器上本地执行相同的调用,则需要一秒钟的时间

myapp/public/caup_laravel/vendor/intervention/image/src/intervention/image/AbstractDecoder.php

代码:

url的示例是:


通过浏览器访问图像是即时的,例如,如果我在地址栏中键入url,请检查您的/etc/resolv.conf文件。这么长的延迟听起来很像有两个没有用的名称服务器。

我收到了服务器提供商digitalocean的回复

我们收到了DNS中断的报告,影响到使用DNS的用户 谷歌的DNS服务器,这是我们所有图片的默认设置。这 液滴处于受影响的IP范围内,因此可能与 问题

您可以尝试使用OpenDNS的服务器208.67.222.222和 208.67.220.220,作为您的主或备份名称服务器?这将解决您面临的问题。你可以暂时这样做,它会的 通过编辑/etc/resolv.conf查看,将其保存到下次重新启动 像这样:

到目前为止,一切都表明这是谷歌方面的一个问题, 影响192.241.128.0/17范围内基于UDP的DNS查询。 最终,查询可以退回到TCP,这使它们能够 成功,但需要几秒钟来解释你的缓慢 看到。我们已经看到谷歌的速率限制或阻止选择性IP范围 以前,很难确定。我们已经到达了 我们正在等待谷歌的回应和解决方案


这起作用了

您是否像错误报告中的人那样尝试重新启动?同一台机器上的其他文件是否也很慢?你能用类似nslookup dev.causepick.org的东西在该服务器上测试DNS查找吗?如果服务器的DNS导致对该域的查找速度变慢,这可能解释了从其他计算机上看不到的延迟。我重新启动了机器是的@MichaelBerkowski,它可以工作,但下面的事情是:如果我ping google.com,我必须等待大约15秒才能得到第一个结果。所以在15秒钟内什么也没发生,结果出来时测量的响应时间很低,不知何故忽略了我基本上在CLI中等待了很多秒的事实。类似于dev.causepick.org,重试了几次,只是说:刚得到$ping dev.causepick.org ping:unknown host dev.causepick.org下次我尝试时,它会再次工作。那么它甚至是快速的。再试一次。。。工作正常,但速度很慢。我现在意识到我可能上周在Ubuntu工作站上遇到了同样的错误,在那里我每3-4小时就会丢失一次DNS。8.8.8.8和8.8.4.4
   $options = array(
        'http' => array(
            'method'=>"GET",
            'header'=>"Accept-language: en\r\n".
            "User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Chrome/22.0.1216.0 Safari/537.2\r\n"
      )
    );

    $context  = stream_context_create($options);
    if ($data = @file_get_contents($url, false, $context)) { //VERY slow call
        return $this->initFromBinary($data);
    }
nameserver 208.67.222.222  
nameserver 208.67.220.220