我正在运行一个网站,它监控一些服务器,每天都有更多的服务器添加。
遗憾的是,我目前的解决方案非常慢( 31台服务器的加载时间约为10秒)。我使用fsockopen来检查IP和端口。因为我使用条目(主机和端口)解析XML,所以我必须创建一个函数并在解析器中使用此函数,以便网站的访问者可以看到服务器的在线或离线状态。
我当前的"checkserver“函数如下所示:
function checkServer($ip, $port)
{
$fsockopen = @fsockopen($ip, $port, $errorNo, $errorStr, 1);
if (!$fsockopen)
return false;
else return true;
}
在解析器中,服务器状态的"if“规则如下所示:
if (checkServer((string)$server->host, (string)$server->port))
{
echo "SERVER ONLINE!";
}
else
{
echo "SERVER OFFLINE!";
}
其中$server
是XML <serverlist></serverlist>
标记中列出的每个服务器。
我已经尝试将fsockopen的超时时间从1更改为0.1,但一些服务器显示为脱机,加载时间仍为8-10秒。
我怎样才能加速加载时间呢?有没有人能帮我一下?这个项目对我来说非常重要。谢谢!我真的很感谢每一个有用的答案!
发布于 2017-07-20 15:17:11
首先,我建议使用缓存。我不确定有多少用户会打开页面,但如果你每秒有多个用户打开页面,你就会有大量的流量需要处理,这在很长一段时间内可能会产生问题。
您有两种解决方案:
使用异步事件的
中的二进制文件,你需要添加到你的
https://stackoverflow.com/questions/45217368
复制