《Web效能》一年一遇的好書

berlinix發表於2014-08-05

現在我看書的時間遠不如從前了,1年大概只能精讀2-3本書,泛讀20本左右。但即便是把這個數字擴大1倍,我也能斷定《Web效能》在我的書架上也絕對能側身一年一遇的好書之列。說實話,我並沒有特別認真地讀,更沒有從頭到尾地讀,當我看完這本書的第1章(延遲和頻寬)和第5-6章(無線網路概覽&Wifi)後,就因感到我的人生已發生極大變化,而把它遺之一旁。和那種人雲亦云的推薦不同,接下來我將詳細地告訴你本書是如何改變我的人生的。

那陣子我正好遇到一個棘手的事。我有個Mac筆記本,打算從另一臺裝有Win7的機子上覆制一些檔案。我極為驚訝地發現,兩臺電腦的傳輸速度只有可憐的1.5M/s。要知道我上傳檔案到網路硬碟也輕鬆突破這個數字啊。換句話說,我從Win7把檔案上傳到網盤,再在Mac上把它下載,也不會比這樣的傳輸更慢。

起初我屈服了,用U盤充當媒介,在兩者間複製檔案。並忍受了幾天這樣的速度。我Google了許久,嘗試了一些解決方案,以下是我當時的一些筆記:

據說OSX 10.7後由於避免版權問題,沒有使用Windows的smb協議實現,而用了自己寫的替代方法,很不成熟,速度比PC間的共享慢很多。

有建議使用CIFS。在Finder裡輸入cmd+k,把smb的字首替換為cifs,如:

cifs://192.168.1.102/backup

很遺憾,都行不通。我嘗試過其他方法,如通過應用軟體如飛鴿傳書等來傳輸檔案,依然慢得恐怖。

我感到有些絕望。難道在接下來的歲月裡,我都要忍受1.5M/s的傳輸速度嗎?絕不能如此。

沒有用tcpdump/Wireshark來幫助診斷,而急匆匆跑去求救Google,我對自己有些失望。不過當時沒有意識到自救的問題。從一開始就認為是個小問題,並深陷在各種失敗的嘗試之中。直到最後我翻開《Web效能》。

這本書第1章就開宗明義地說明了影響網路效能的2大因素:延遲和頻寬。我知道延遲,也知道頻寬。我知道頻寬非常重要,也很貴(對購買頻寬的公司而言)。但為何把延遲和頻寬放一起,甚至還放在前面?

看完第1章的短短几頁後,我感到毛骨悚然。如今這個年代,1M以下的頻寬還真是罕見。我朋友笑話我還停留在20M的落後階段,他早就上50M了。但即便是這樣的頻寬,即便看視訊非常流暢,有時你仍會發現,開啟某些網頁有點卡。頻寬反正越來越便宜了,為何不上更大的頻寬呢?反正電信公司的人是這樣說。

如果不是出自無知的話,電信公司的人一定是故意絕口不提延遲的事。延遲的本質是說,資料的傳輸是需要時間的,光從A地到B地需要時間,這個時間就是延遲。光速在真空中的傳輸速度約為300,000km/s(30萬公里每秒)。我有一個Linode VPS在達拉斯,從北京到達拉斯的直線距離:11,233km,光從北京到達拉斯的時間為:11,233 / 300,000 = 0.0374s = 37.4 ms (37.4毫秒)。我多次ping過這個VPS,但並沒有深刻的意識到這個東西是“延遲”。而這個“延遲”幾乎無法優化。

B2D

我跳到第5章無線網路以及第6章Wifi,醍醐灌頂。首先,作者明確指出無線網路是不可靠的。我知道我的Mac和Win7都是通過無限網路傳輸的,但從未考慮過它們的可靠性問題。插上一塊無線網路卡就能上網,沒有佈線的煩惱,但是作者說:無線網路是不可靠的。我小吃一驚。然後看到Wifi的幾個標準,也就是802.11 a/b/g/n/ac標準。我快速檢查了自己的裝置:

  • Mac。自帶的無線網路卡,支援802.11 a/b/g/n/ac所有標準。
  • Win7。桌上型電腦,TPLink無線網路卡,802.11g 標準。
  • 路由器。TPLink無線路由器,支援“最新”的 802.11g標準。

失望,絕望,憤慨什麼情緒都湧上來了。路由器是4-5年前購買的,網路卡是3年多前購買的。它們真的是太老了。按書中所言,我認真地觀察了Win7 ping路由器的輸出,幾乎達到恐怖的10ms延遲,且大概有1-2%的丟包率;同時期另一臺PC通過網線連線路由器,ping的延遲小於1ms。

我立即購買了1個新路由器與1個新網路卡,雙雙升級到802.11n標準。然後重新測速,大概穩定在4.5M/s-5.5M/s。可惜我現在的無線網路還執行在2.4GHz,還沒有支援5GHz。但對這個結果已經比較滿意了。

OSX

在我重新意識到“硬體”的存在後,改進了Linode VPS的部署。曾經我對速度的優化始終停留在軟體上,以為軟體就是一切。如今,我真正意識到硬體,地理位置對效能的影響。我對這些東西並非毫不知情,也知道要把內容(不僅僅是內容)部署到離使用者更近的地方。然而,總有許多現實因素把你的雙眼矇蔽起來,讓你看不清事實的真相。但這位好心的作者已經開門見山地指出了:關注頻寬,但對Web而言更重要的是延遲。

enter image description here

最後仍要大力推薦此書。即使是第1章“延遲和頻寬”,就值書的價錢了。更何況第5、6章帶來的價值。話說到這裡,我真得好好研究下其他章節呢。同時也但願你也有顆好心臟來承接作者帶給你的驚喜。

相關文章