網站當機是不可避免的嗎?

上篇文章"WordPress.com 當機,影響千萬個部落格“,報導了Wordpress的大規模當機,CNN也談到了"Why website crashes are unavoidable — at least for now“,他認為網站當機是無可避免的問題,如果真的是這樣的話,那麼未來如果許多服務都上了雲端運算的話,當機了以後會造成多大的影響呢?

WordPress的當機讓許多大站的部落格都停擺,不只是讀者無法閱讀到內容,而是已經影響到廣告的效益,不過好在只有數個小時的中斷,對於讀者與企業還不至於影響太大,如果今天停工的是電子商務網站,那麼數個小時的中斷很可能損失數十萬、甚至於數百萬的業績。所以網站當機真的是不可避免的嗎? 當然不是,如果中斷後會造成巨大損失的話,當然不能只是99.99%的uptime,而是必須100%的無誤運轉。

這篇"Twitter’s Performance Problems Explained By a Twitter Engineer“提到了Twitter的效能問題,在2008年Pingdom的報告中(如下圖),Twitter算是名列前茅的 …. 差勁,是所有社交網站中最會當機的一個,Twitter的Fail Whale可以說對於使用者是很熟悉的了。

為何Twitter這麼容易當機,當然使用量高是其中一個因素,另外的原因就是:

  • The team put two important, fast-growing, high-bandwith components on the same segment of Twitter’s internal network.  將兩個重要而成長快速的元件錯放在同一個區段位置 …
  • The network wasn’t being monitored the way it should have been. 網路沒有如以前一樣的監控
  • The internal network was also temporarily misconfigured. 內部網路沒有設定正確 …
  • 總而言之,就是設定出問題+沒有監控 …

    網站當機或運作出問題,通常的問題都出在 : (1)超出系統負荷 (2)沒有做好微調 (3)設定出問題 (4)沒有監控機制

    如果不是因為惡意攻擊的超出系統負荷,應該算是最讓人高興的當機了 … 因為表示很多訪客到訪,但是如果沒有盡快調整到正常,也會讓人笑不出來的。

    超出系統負荷如果是硬體類的問題,例如頻寬不足、伺服器不足 … 如果scalability許可的話,只要出錢就能解決問題; 如果是軟體類的問題,例如系統無法再吃更多的記憶體、程式的寫法太吃資源 … 就可能不是能夠馬上解決。也就是如果超出系統負荷是因為scalability(規模可伸縮性),而當系統無法調整此scalability時,那麼問題就大了。

    而沒有做好微調 跟設定出問題,大概可以歸為同一類問題,就是mis-configuration,要由錯誤的設定調整到正確的設定,如果系統龐大的話,也不是三言兩語可以解決的。

    不管是前面哪些原因,如果沒有監控機制的話,根本無法事前找出問題,或是事後解決問題。因為所有的問題都不能用猜測的,都需要監控機制的數據才能判斷或避免慘劇,如本站之前的硬碟毀損就是根本沒有監控機制,才會事前完全不知道硬碟即將毀損。

    OK,講了半天意思是什麼? 意思是網站當機是不可避免的嗎? 絕對不是,完全看網站當機會造成多大的損失,只要完善的規劃與運作,網站當機絕對是可以避免的,或是至少可以快速的恢復。

    如果你仔細的觀察許多大的網站,你也許會發現許多資源都沒有優化(Optimization),也就是明明可以不需要這麼浪費資源的,明明可以不需要每個頁面顯示都去連線資料庫的,明明資源可以切割來提升效能的 … 太多的小小浪費累積起來就變成了大的浪費。

    為什麼會如此呢? 大多都是因為便宜行事,所有的作業都照規則的話,一來可能時間不允許,二來可能因為懶得修正舊有架構。

    以下幾個效能的問題,也許你也可以自己觀察看看:

    (1)server是否有啟用壓縮模式?

    (2)哪些動態程式可以改成靜態html?

    (3)哪些動態程式連接資料庫是可以避免的?

    (4)動態程式連接資料庫的效能還能提高嗎?

    (5)資料庫的結構是否已經最佳化?

    (6)網頁的每個元件(html/image/css/js…)是否已經都最佳化?

    CNN的那篇文章大概是想替Wordpress說話,但是說實在的,網站當機是可以避免的,並且可以在尚未造成具大損失前恢復正常,但是前提是必須完善的規劃與運作,如果能夠做到uptime 100%,那麼才能安心的邁向雲端運算,否則一切都免談了。

    Loading Facebook Comments ...