我有一个设置,我有两台运行瘦客户机(Apache,PHP)的服务器。在服务器A上,它考虑客户端计算机并连接到服务器B以通过Restful API获取数据。两台服务器都在同一个网络上。服务器B,请求的响应如下所示:PHP Curl API响应时间与不同服务器不同
{
"code": 200,
"response_time": {
"time": 0.43,
"measure": "seconds"
}
}
服务器B通过使用microseconds到标志的请求块的开始和结束计算完成每个任务的时间。但是当我使用curl服务器A拨打电话到服务器B,我变得非常奇怪的结果在执行时间:
$url = "https://example.com/api";
/*server B address. I've tried IP address as well without any change in results.
This must go over a SSL connection. */
$start_time = microtime(true);
$curl2 = curl_init();
curl_setopt($curl2, CURLOPT_URL, $url);
curl_setopt($curl2, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl2, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl2, CURLOPT_USERAGENT, "Server A User Agent");
$result = curl_exec($curl2);
$HttpCode = curl_getinfo($curl2, CURLINFO_HTTP_CODE);
$total_time = curl_getinfo($curl2, CURLINFO_TOTAL_TIME);
$connect_time = curl_getinfo($curl2, CURLINFO_CONNECT_TIME);
$namelookup_time = curl_getinfo($curl2, CURLINFO_NAMELOOKUP_TIME);
$end_time = microtime(true);
$timeDiff = round(((float)$end_time - (float)$start_time), 3);
我得到的每个时间检查以下内容:
$timeDiff = 18.7381 (Using Microseconds)
$total_time = 18.7381 (Transfer Time)
$connect_time = 0.020679
$namelookup_time = 0.004144
所以我不确定为什么会发生这种情况。有没有更好的方法来从网络中的另一台服务器获取数据并保存您的API?这就好像Twitter的网站正在从另一个不是API服务器的服务器上使用它们的API。我认为API的curl的时间与API报告的时间非常相似。据我所知,API不考虑网络流量和速度来打开连接 - 但18秒与0.43对我而言似乎很陌生。
这里的任何想法?
+0
哪些数据是API发回?此数据有多大 –
+0
数据正在以JSON形式发回。它可能相当大 - 不确定大小,但对于一个示例文件,内容长度为“内容长度:136917”。 –
+0
服务器将事情发回给服务器的下载速度是多少。过去我已经看到了一些128kps的设置,所以你应该研究一下! –