2

異なる地理的位置にある 2 つのサーバーに同じファイルをアップロードしましたが、PHP を使用してそれらを個別にダウンロードするのに必要な時間を計算したいと考えています。それに対する解決策はありますか?
たとえば、次のようなものが必要です。

ダウンロードには約 30 秒かかります。サーバー #1 から、サーバー #2 から 50 秒。

4

1 に答える 1

2

あなたは本質的に、あなたがしていることの音によってコンテンツ配布ネットワーク (CSN) を書こうとしています。

CDN は本質的に非常に複雑であり、いくつかの戦略を使用して、データを配信するための最短パスを決定します。

この方法を実現するための簡単なサーバー側の方法は、IP アドレスを使用してユーザーの位置を特定し、ユーザーがいる国または都市を特定することです。その後、ユーザーをその場所に最も近いサーバーにリダイレクトできます。

複数のサーバーから時間を計算する場合は、クライアントを使用して両方のサーバーから小さなファイルをダウンロードし、転送時間を使用して帯域幅を計算することでこれを実現できます。

AJAX を使用した時間の計算

jquery を使用していると仮定していますが、prototypeJS などで簡単にこれを行うことができます。

var date = new Date();
var startTime = date.getMilliseconds();

//Known file size in KB
var fileSize = 100;

$.ajax({
  url: "http://www.example.com"
}).done(function() { 
    alert(calculateBandwidth());
});

function calculateBandwidth(){
    var date = new Date();
    var end = date.getMilliseconds();
    var secondsTaken = (end - start)/1000;
    var KBps = fileSize/secondsTaken;
    return KBps;
}

これはキロバイト/秒であることに注意してください。キロビットは (filesize*8)/secondsTaken になります

于 2012-06-14T10:06:05.880 に答える