私のサイトには以下の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;
キー/値のmemcacheを検索します。キーが見つからない場合は、FTPでコンテンツを取得し、memcacheに5分間保存します。5分ごとにすべてのユーザーに対して1人のユーザーがこれを実行する必要があるだけです。最後に、「parseXml()」関数を使用してXMLをphp配列に解析し、次に「gatherHtml()」を使用してPHP配列をHTMLに変換し、これを返します。
それは長い間働いていました、しかし突然それは私のサイトを本当に遅くし始めました。私は長い間コードを変更していません。2台のサーバーで負荷分散を行っており、内部スイッチの発信帯域幅も急増しています。負荷を確認しましたが、最大スレッド数で平均してDOS攻撃も発生していません。
何かアイデアをお願いします(FTP、memcache、PHP、XML)?