我的网站上有以下 PHP。
$xml = $my_memcache->load('the_xml');
if(empty($xml)){
$username = 'username';
$password = 'password';
$host = 'ftp.thirdpartysite.co.uk';
$file = 'file.xml';
$xml = file_get_contents("ftp://$username:$password@$host/$file");
$my_memcache->save( $xml, 'the_xml' , array(), '1800' );
}
$php_array = $this->parseXml($xml);
$html = $this->gatherHtml($php_array);
return $html;
它在内存缓存中查找键/值。如果找不到密钥,它将执行 FTP 获取内容,然后将其保存到内存缓存 5 分钟。我只希望 1 个用户必须每 5 分钟为所有用户执行此操作。最后,它使用我的 'parseXml()' 函数将 XML 解析为 php 数组,然后使用我的 'gatherHtml()' 将 PHP 数组转换为 HTML 并返回。
它已经工作了很长时间,但突然间它开始让我的网站变得非常缓慢。好久没改代码了。我在 2 台服务器上进行了负载平衡,并且我的内部交换机上的传出带宽也猛增。我已经检查了负载,并且在最大线程下平均没有 DOS 攻击。
请问有什么想法吗(FTP、memcache、PHP、XML)?