Hinet 使用自家代理伺服器 精研(二):BT下載

nandv wrote:
這個問題不是這麼簡單。。
光是proxy 做好,就是很麻煩的事。現在的hinet proxy 一定不是只有一台,前面還要有 load balancer.

後面所謂的cache 管理也是很’深奧‘的學問。在沒有像大陸那樣的經濟規模的情況下,很難砸錢做好。
就只好’土法練鋼‘的做。...(恕刪)


我覺的它 maximum_object_size (快取物件最大值)設太小

比方說:
一個壓縮分割檔約 200MB,第一次下載假設是 200Kb/s 好了,下過完檔後,再下一次,理論上就是硬碟快取供檔了,應該跑全速 100Mbps(10MB/s左右),但第二次下載仍舊也是 200KB/s.....

說明就是 maximum_object_size 參數設太小(假設是用 squid 的話)

以這種 ISP 等級的 proxy 主機來說,就算 maximum_object_size 設 4GB 也不過份,不然至少也要 1GB 才合理。是不知道它設多少,但比 200MB 還低,有夠誇張。

其它比如:RAM 愈大愈好,財力夠粗用 SSD 讀寫小檔效能更好,對外專線要多線負載平衡 load balancer(避免太多 session 連線要求同一網站,被該網站封IP或限速).....等等的,那都最基本的。

ISP 公司等級的,一個月賺幾千萬,一年賺數億元,搞幾台好的 proxy 了不起幾十萬,頂多百萬元,與它的營收相比,支出猶如沙漠中的幾顆沙,經濟方面估計不是問題。

技術人才的話,中華電信的應徵條件印象中很嚴格,要考進去的,像高普考那樣,錄取率只有 1% 之類的。不是研究所也是博士級的。人才應該也不是問題。

主要問題,估計就是有心沒有心做而已。

一點點個人淺見

fedora wrote:
我覺的它 maximum_object_size (快取物件最大值)設太小(恕刪)


我可以很肯定的說 世界上沒有一個ISP 做事是為了客戶著想。。。
proxy的目的不是讓您下載/看片快一點。是它自己要省錢。
看看某cable 網路公司的BT cache 就知道了。。。

這麼想就很容易理解你問的問題:既然已經在cache了,為什麼還是這麼慢。。。
因為cache的目的是‘它’可以省再拿一次,不是客戶下載更快。。。



nandv wrote:
這麼想就很容易理解你問的問題:既然已經在cache了,為什麼還是這麼慢。。。
因為cache的目的是‘它’可以省再拿一次,不是客戶下載更快。...(恕刪)


意思是:proxy server 有對使用者連線 限速?

可這樣做沒有意義啊,ISP 的 proxy server 與 用戶 之間,走的網路是 ISP 自己的島內骨幹,又不是海纜。

限速 只會平白造成用戶佔線,對 ISP 和 用戶 雙方來講,都沒好處,完全沒意義。


比方說:

假設有一個檔案,以 10MB/s 速度要花 1分鐘下載,200KB/s 則要花 50倍時間,要50分鐘。

用戶連接 proxy 下載被限速,就要多浪費 49分鐘下載,浪費時間。

而 ISP 則是 proxy 主機被用戶佔著線。一台主機,每一秒,同一時間,能處理的連線數是有限的,如果人人都龜速下載,都佔在上面,主機閒置不下來,那主機就要不斷的提高硬體配備,來負載龐大的連線數。

而且不只 proxy 主機而已,整個骨幹的每一個路由節點、機房,都要承受同樣的連線數,亦即:設備全部要花大錢升級。

從種種方面來看,完全不討好,佔不到任何好處,反而是自找麻煩,想不通有什麼理由要這樣做。所以覺的應該不是限速的問題。
fedora wrote:
意思是:proxy ...(恕刪)

server loading 不是只是連線數。。
再重複我說的,ISP 的原則不是讓‘你’最快,是讓大家都快,平均的快。也許平均的快,對你來說是慢。但這就是現實。。

以你的例子,如果現在有10萬人掛在proxy上,20% 有cache hit, 照你的理論是這20%,兩萬人都該得到全速下載。如果真是如此,可能proxy就掛了。

在把server loading 平均分配到所有人的考量下,連線數只是一個(小)因素而已。
現在網路設備,尤其是core network部分,連線數都是小問題。L4 以上的才是真正吃CPU的。。

整個骨幹的每一個路由節點、機房,都要承受同樣的連線數,亦即:設備全部要花大錢升級。


這個不對。connection的建立只需要兩端點,中間的無關,只是做packet routing.

nandv wrote:
以你的例子,如果現在有10萬人掛在proxy上,20% 有cache hit, 照你的理論是這20%,兩萬人都該得到全速下載。如果真是如此,可能proxy就掛了。...(恕刪)


不能全速,但也不必限速吧,看 proxy 對內的網路頻寬有多大,平均下去,能用多高算多高。

留著對內頻寬不用,對用戶限速,覺的沒意義啊,留著能幹麼,完全沒用處啊,難道是養蚊子用的。對內頻寬是 ISP 他們自己的骨幹網路,不用白不用的。

而且 proxy.hinet.net 又不是公開的 proxy,是只有用 HiNet 的人才能使用。使用別家 ISP 的網路,連接不了的。


有一點可證明 proxy.hinet.net 沒有限速,比方說:

下載國內網站的檔案,可以跑到 1~5MB/s 的。

但下載國外的,尤其中國大陸網站的檔案,不論下載過幾次(理論上早就 cache),仍是幾十KB/s 在跑。

說明了:實際上沒有 cache。

並非限速的關係。

如果有 cache 到,那下第二次之後的,也該跑國內下載那個速度。


nandv wrote:
這個不對。connection的建立只需要兩端點,中間的無關,只是做packet routing. ...(恕刪)


中間的有關啊

路由器要決定路由,有 session 連線數 處理效能 限制

switch 交換器,也有 session 連線數限制。

兩點建立連結後,網路封包在跑,中間仍是會經過很多路由器、交換器。

並非兩點生成蟲洞,折疊在一起了....


如果中間無關,那所有賣路由器的廠商都可以關門大吉了。什麼每秒可處理 session 併發連接數 幾十萬幾百萬 的宣傳噱頭,豈不是都騙人的。

因為只要兩點建立連結後(兩台電腦之間建立連結),中途的路由器、交換機,都可以無視了?

那幾百元的 IP 分享器,和幾十萬元的路由器,豈不是也沒差別了。


所以說:下載速度慢,對 ISP 來講,一點好處也沒有。沒賺反倒賠。

因為人人都佔著線在龜速下載,久久無法閒置,數千萬數億封包一直跑的,還得花大錢去升級設備。

使用者不可能一天 86400 秒都在下載資料(就算有這種下載狂,硬碟總也有塞爆裝不下的時候,不可能無限制的買),一定會有閒置的時候,早早下完,早早閒置,不是對雙方都好。

nandv wrote:
我可以很肯定的說 世...(恕刪)


台灣大寬頻(Cable Modem) 和 凱擘大寬頻(Cable Modem) 在使用BT下載時

強制用戶 大水管 一律只能從 自家的台固快取而來

而前者並沒有 限制 大水管的下載速度 後者還限制 大水管的下載速度不得超過40Mbps
BT是點對點方式傳輸.代理伺服器有與否是沒差別的.
越多人下載同一檔案速度越快.例如熱門檔案.反之更慢.
下載免空檔案來測試代理伺服器才有真實數據.
代理伺服器邏輯是這家ISP有用戶去下載一個免空檔案.
伺服器會備份一份在伺服器裡.其他用戶用代理伺服器下同檔時.
就直接由代理伺服器的備份抓取.所以很快速.
若用戶抓的檔案是伺服器首次抓取一樣很慢.

fedora wrote:
不能全速,但也不必限...(恕刪)

您對cache 和 dynamic content, 和 TCP/IP 的認知,可能還需要再念點書。
再下去的討論可能會牽涉到動物的比喻了。
tn914196 wrote:
下載免空檔案來測試代理伺服器才有真實數據.
代理伺服器邏輯是這家ISP有用戶去下載一個免空檔案.
伺服器會備份一份在伺服器裡.其他用戶用代理伺服器下同檔時.
就直接由代理伺服器的備份抓取.所以很快速.
若用戶抓的檔案是伺服器首次抓取一樣很慢....(恕刪)


就是下載 http 的才奇怪

免空、或網站提供的檔案,瀏覽器下載那種的, http 協定 80 port 的

第一次下載 ---> 慢,可以理解(因為 cache 沒資料)

第二次下載 ---> 仍是慢

不信邪,再試:
第三次
第N次 ---> 仍是慢,速度與第一次下載一模一樣

貌似根本就沒在 cahce 的

可能是 squid 的快取最大物件值,設太小,只快取 html、圖片 之類的(10MB 以下的)小檔案

或者也可能根本就不快取,porxy 純粹代理用的(給用戶換 IP、換路由 用的...)
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!