2012-08-12 56 views
2

可能重複:
Measuring ping latency of a server - Python如何知道網站的響應時間?

There are a few servers such as 

http://server1.stackoverflow.com 
http://server2.stackoverflow.com 
http://server3.stackoverflow.com 
http://server4.stackoverflow.com 

,我想知道哪個環節響應時間最短的時刻。我該怎麼辦?

我在想:timeit或ping服務器。

如果您能給我一個樣品或任何想法,我將不勝感激,謝謝。 :)

回答

1

爲什麼你想自己做這個?通常,應用程序服務器運行在負載平衡器後面,希望以最少的負載將您的請求重定向到機器......在這種情況下的負載平衡 - 由您自己完成 - 在地理上分佈的應用程序服務器設置中可能有意義,但不適用於此Stackoverflow服務器。所以你的用例是?

參見

Measuring ping latency of a server - Python

+0

這是一個例子,想想你要選擇一個代理服務器... – 2012-08-12 10:24:41

0

我想谷歌它半天,這樣的事情?

url = "" 

f = urllib.urlopen(url) 
start = time.time() 
page = f.read() 
end = time.time() 
f.close() 

有沒有更好的辦法?

+0

開始時間在urlopen之前? – 2012-08-12 10:56:46

0

可以使用popen執行ping命令:

例如,讓我們的stackoverflow三個nameservers並ping他們。 最快的將是一個具有最低的平均時間

import os 
lis3=['64.34.119.33','64.34.119.34','69.59.196.217'] #nameservers of SO 
lis2=[] 
for x in lis3: 
    strs=os.popen("ping "+x).read() 
    #print strs 
    time=strs[strs.rfind(' ')+1:strs.rfind('ms')] 
    lis2.append(int(time)) 

minn=lis3[lis2.index(min(lis2))] 
print 'lowest average time is from {0}'.format(minn) 

輸出:

lowest average time is from 69.59.196.217