您的上網可以更快
上一篇高登教大家「找出最快的 Facebook 主機」,相信很多人試了之後會有一大堆問號???
為什麼連到比較遠的美國 Facebook 主機反而會比較順,是什麼原因造成這種現象?
事實上有許多人都有「網站呈現的速度跟網站主機的位置有關」這種觀念,但是您知道嗎?網站主機位置並不是網站速度的唯一因素,這一點我相信您已經實際體會到了,不是嗎?
影響網站速度的因素
這篇文章要來探討一下如何讓網站以最快的速度呈現在網友的瀏覽器,我先歸納幾個因素:
- 網站主機的地理位置
- 網站主機連線的頻寬
- 網站主機的硬體規格
- 網站佔用的主機資源
- 網站主機程式的設置及優化
- 網頁資料的大小
而這些因素是環環相扣的,只要其中有一項表現不佳,網站速度的整體表現就會差很多,現在我一一解釋每一項因素的影響。
網站主機的地理位置
這就是一般人認為網站主機在台灣的會比在國外快的刻板印象,但是您知道嗎?高登工作室開站五年多來,除了剛開始主機在台灣以外,已經使用美國主機有四年多的時間了。
那您在瀏覽高登工作室網頁的時候會覺得慢嗎?會讓您馬上想到這個網站是放在國外的?
我想我不說您應該都不知道吧?
所以網站主機的地理位置並不是決定網站速度的唯一因素,而且重要性比起下列的因素可能都還要低。
除了一種例外:當台灣跟美國之間的網路不通的時候,那就會有很大的影響了!
網站主機連線的頻寬
當您家裡動不動就是 50M, 100M 的網速在上網的時候,網站主機對外的頻寬會比第一項因素來得重要。
曾經有台灣的主機商來找高登合作,想叫我將網站寄放在他們的主機,但是我看了看他給的規格就沒再談下去了。
因為他們提供的最大頻寬只有 1Mb?!
以 1Mb 的頻寬,多幾個人同時瀏覽本網站就會互相影響,而且大家用高速頻寬連到低速網站主機,所得到的網速當然就是你跟大家均分那 1Mb 之後的速度,您想那會很快嗎?
這就是大家常在講的網路塞車最主要的原因:就好像高速公路連續假期湧入太多的車輛,遠遠超出它能負擔的流量,這樣百分之兩百一定塞車。
所以高速公路避免塞車的一個作法是:「增加道路線數」,這就是跟頻寬一樣的東西。
四線道可以容納的車流一定是兩線道的兩倍左右,這一點大家應該同意吧?
但是一般在台灣的網站因為基礎建設的頻寬值本來就比國外低很多,所以會把公路的線數減少(頻寬降低),這是目前台灣網路建設的最大問題所在。
網站主機的硬體規格
網站主機也是跟您用的個人電腦一樣一直在出更新更快的規格,您應該不知道在台灣主機商的機房裡面,超過使用四、五年古董主機的一大堆。
更別提國外主機已然慢慢在普及的 Raid 磁碟陣列,甚至是用固態硬碟 SSD 組成的磁碟陣列。
還有 CPU 的運算效能也是差很大,如果你家裡新的 i7 四核心主機跟舊的 P4 主機做同一樣一件運算的作業(影片轉檔或算 3D 圖),那花費的時間會是差好幾倍的。
所以新規格的主機一秒鐘可以處理的程序數目,是那些古董主機的好幾倍,這也是影響網站主機速度的另一個重要因素。
網站佔用的主機資源
但是就算是採用了最先進的硬體,如果一台主機放100個網站跟放1000個網站您覺得哪一個會比較快?
用膝蓋想也知道同一台主機放越少的網站速度會越快!
但這個比較是大家的網站規模都一樣才有意義,因為一個大型的網站所吃的資源可能等於1000個小網站所別的資源。
而這也就是一般虛擬主機 Virtual Host 跟 VPS 甚至是獨立主機的差異:一般低價的虛擬主機是所有網站共用資源的,當同一台主機有耗用極大資源網站的時候,其他的網站速度就會受到拖累。
而好的 VPS 主機則會保證每一個網站都能保有一定百分比的資源,所以比較不會被其他網站拖垮。
這也就是 VPS 主機會比一般虛擬主機還貴的原因:因為主機商能賣的口數有限制,比較不會像虛擬主機一樣嚴重超賣。
網站主機程式的設置及優化
網站主機的程式也跟您家裡用的作業系統一樣有好壞之分,好的作業系統可以讓您用最少的硬體資源達成相同的工作。
而這個部份就是網站系統管理員要作的功課了,在相同的硬體條件下,一個優化良好的主機程式環境,可以讓網站同時瀏覽人數增加好幾倍,您相信嗎?
事實上電腦軟體產業也跟硬體產業一樣,每年都會進步許多,甚至以前許多人想都不敢想的叢集主機、異地備援都已經可以用很少的費用就達成。
還有現在也有許多台灣的網站主選擇國外的內容傳遞網路 CDN (例如 CloudFlare)來分擔大部份的網站負載,這也是主機程式差異的代表。
雖然有人對台灣網站掛國外機房的 CDN 嗤之以鼻,在您看完了這一篇的分析之後,或者也會同意這是一個不錯的作法。
網頁資料的大小
不同大小的網頁載入的速度一定會有差異,需要載入比較多檔案、圖片的網頁一定比較慢。
就算是一樣大小的圖片,有優化跟沒優化會讓圖片檔案的大小差好幾倍,所以載入網頁的速度也會差好幾倍。
而高登工作室這個網站因為太貪心,所以網頁放了一大堆的外加程式及廣告碼,但是您在瀏覽本網站的時候會覺得很卡嗎?
其實我是有一點故意讓網站那麼肥,為的就是測試主機的能耐。
如果很卡一定要告訴我喔!
Facebook 的奇幻旅程
現在就以上篇文章所提到的找尋最快的 Facebook 主機來說明這一趟旅程,首先我也是跟大家一樣,沒去特別注意到底連線的 Facebook 主機在哪裡。
直到有一陣子一直感覺 Facebook 瀏覽的速度很卡,常常按右上角的首頁要等幾秒鐘才會有內容出現。
於是就用 nslookup 去查了一下 Facebook 的主機 IP 位址,於是發現到 Google Public DNS 將 Facebook 主機指向了香港的機房。
我就以這張國道5號的替代道路圖來說明一下:
本來 HiNet 都是叫你走北宜公路從台北到宜蘭,但是我卻發現了一條捷徑可是 HiNet 都沒有叫大家走的國道5號(香港線)。
於是我就偷偷地走了國道5號一段時日,而且速度真的也都飛快,直到暑假一開始國道5號的塞車惡夢就來了。
原因可能是太多人大陸網站看連續劇或是影片,這時候我終於瞭解為什麼 HiNet 不敢指引大家走比較近的香港機房的原因:台灣連香港的頻寬嚴重不足,甚至還要分一大部份給去大陸的流量。
最後山不轉路轉我又找到了日本這條路線,走起來竟然意外的順暢,讓人在一種走越遠反而越快到達的驚喜。
這就是最後找到的一條又遠又快的路:北濱。
我推測原因有兩個:1. 日本連到美國的頻寬足夠大 2. 日本 Facebook 的使用者不多,所以 Facebook 走這條路就很順(在日本比較紅的社群是 Twitter)。
根本的解決之道
或許您又會有疑問:Facebook 能在香港設機房,難道不能在台灣也設機房嗎?
問題的癥結還是在 HiNet,因為一定是雙方的條件談不攏,要不然 HiNet 怎麼會要大家連 Facebook 都出國,浪費那「貴森森」的國際頻寬呢?
我甚至曾經去參觀過號稱耗資上億元台幣,本來要當 Facebook 台灣資料中心的機房,本來大家都有這個計劃的,但是為什麼喊卡就不是我們這局外人能瞭解的。
所以我們可以要求不管是 Facebook, HiNet 甚至是任何一家電信商快點把 Facebook 台灣機房建起來嗎?
還有那先前說得很好聽的 Google 台灣機房,不知道是雷聲大雨點小?還是快要下大雨了?
大旱望雲霓啊!
或許「YouTube 很卡嗎?試試這一招看看」可以先解大家的渴。
Google資料台灣中心跟中華電信是沒有互聯的
因為....也是利益喬不攏...(所以我們的Youtube連線速度(ry
我不是業界所以不清楚,不過早就有這種想法了
唉!中華
對於這一篇文章,和前一篇文章,我有點疑惑。
像 facebook 這類,全球各地都有 data center 的網站,大概都是透過類似 global load balance 的方式,透過 name servers,將使用者引導向最理想的 data center。
當 user 使用 HiNet 的 name servers,詢問 http://www.facebook.com 的 IP 時,,HiNet 的 name servers 是無權回覆的,它必須先知道 .com 的 root name servers 的 IP,然後去 .com 的 root name servers 問 facebook.com 的 name servers 的 IP,接著再去 facebook.com 的 name servers 問,www.facebook.com 的 IP。
終於問到了,再把這個答案告訴 user,然後這辛苦問到的答案,會根據 TTL (time-to-live),快取一段時間,在這段時間內,就不用那麼辛苦到處問了。
所以,正常狀況下,是 facebook.com 的 name servers,將美國 data center 的 IP 回覆給了 HiNet 的 name servers,所以使用者會去使用美國的 data center。
決定權是在 facebook.com 的 name servers,不是 HiNet 的 name servers,除非 HiNet 搞了「DNS 挾持」,這種事情在中國以外的地方,都會成為大醜聞,我不認為 HiNet 有這個膽子去搞這個。
以上是我的淺見。
您不能以正常人的觀點去看自我感覺良好的 HiNet
而且整件事的主因是 HiNet 連到 Facebook 的頻寬不足,所以我們才需要自力救濟
今天馬上又會發一篇 YouTube 的文章,也是在講 HiNet 連到 YouTube 的頻寬一樣嚴重不足
CHT 絕對是有問題的,因為討厭 CHT,我家沒 HiNet、沒 MOD、沒有線電話、手機也不是 CHT。
但是我還是不覺得他有膽子在 name server 上面動手腳。
Youtube 的文章,等您發表後,再來討論看看。
我沒有說他在 DNS 動手腳喔
我只是告訴大家連到他們指定的主機反而比連到遠處的主機還要慢
以及猜測為什麼他們不敢叫大家連香港機房的原因
另外,還有一個問題不知道高登大注意到沒有?影響網站載入速度的因素還有網路延遲。頻寬大,但延遲高也不一定快,甚至更慢,比如100M的頻寬,300MS的網路延遲與20M頻寬,100MS的網路延遲,後者應該更快羅(這裡說的是普通網站,不是下載站點)。我們身在大陸匪區,受夠了電信跟聯通製造出來的世界最遠距離,不知道中華民國有無這種現象。
那是被封包檢查拖慢的,那裡不能以正常的眼光來看待
唔。。我在香港沒什麼問題。。等等我去用Hinet DNS上網試試看看看現在會不會慢 ^_^
老師,我想請教一下,你目前的站是用哪家的,我真的感覺不出來你的網站慢。
我有申請一個godaddy的虛擬主機,主機在新加坡。我自已在家開就很順,但是只要一用學網開,那個速度是爆慢…這是我覺得主機位置很重要的原因。我知道學網在國際頻寬的限制比較大。
BUT…但是…但是你的主機不是也在國外嗎?為什麼我在學網上感覺不出來你的網站慢???為什麼???
所以…一個網站的 loading 速度「主要」取決於…
(1)主機位置 (2)還是虛擬主機|VPS
我有點不知所措啦…請高登大大幫我解惑啦…
主機的位置只決定網頁出現的時間延遲(就是大家說的 ping 值),而我用的主機都是在美西直連線路只會慢台灣主機 0.15 秒左右,我想一般人應該不出來
而後續的速度就看你主機連線的頻寬上限以及主機商給你的資源,我現在的主機在 Digital Ocean,突發頻寬可以上 1Gb,而且使用的是 SSD 碟,然後 KVM VPS 的規格可以保證自己購買的主機資源不會被搶
而你的問題是在機房的位置:台灣連外的第一選擇是日本,第二是美國西岸,因為所有的主幹線都是走這兩條的,而香港本來應該也不錯,但是早就被連大陸的頻寬塞滿了,所以也不用考慮
而台灣的機房是是突發頻寬太低,如果同時有多人連線的話不見得會比我的美西主機快
不過以上的解釋用在一般的虛擬主機甚至是 OpenVZ VPS 可能不適用,因為只要同一台主機有幾位害群之馬大家就都要龜速了