牛昆亮 張順利 王麗
摘 要:應用服務器的過載和拒絕服務越來越頻繁,是網站需要擴容的信號。此時網站必須進行擴容,以留住用戶、提高用戶體驗。本文討論通過升級硬件擴容和升級為分布式部署架構進行擴容的優缺點和選擇條件。
關鍵詞:服務器;數據庫;分布式部署;擴容
當網站訪問變得越來越慢時,就是告訴我們網站需要擴容了。為了留住用戶,提高用戶體驗,我們可以從以下幾個方面,對網站進行擴容。
1 通過升級硬件設備來擴容
升級硬件無疑是最直接的方案。對高訪問量的網站而言,CPU、內存、網絡帶寬以及數據庫的TPS性能,直接制約著網站的并發訪問量,決定了客戶的體驗。
升級硬件,也是最簡單的方案。只需要把軟件在新的硬件上重新部署,然后啟用。便完成了整個升級過程。
1.1 升級為更高性能主機
主機性能,主要由主機的CPU頻率、內存大小和速度,磁盤IO的性能等決定。客戶體驗的提高,應著重解決網站的瓶頸。
常見的網站,一般由數據庫和網站組成。對于以數據庫為核心的數據流網站,一般來講應該重點考察升級數據庫服務器的性能。對于以業務計算、尤其是科學計算較多的情景,應該重點考察網站的CPU等。
找到瓶頸,對瓶頸擴容升級后,網絡性能會顯著的提高,改善用戶體驗。
1.2 增加網站出口的帶寬
網絡帶寬的不足也會造成網絡訪問緩慢。表現為網站和數據庫服務器的壓力較小,而網站網絡負載已經達到外網出口的理論速度。此時應該向SP申請更高的帶寬來解決問題。
2 網站升級為分布式部署架構
分布式部署是目前的主流技術,其特點是以量取勝,從而突破單一硬件的性能限制。分布式系統的特性,可以簡單的實現業務的不間斷運行。可以提供7*24小時的服務。
2.1 網絡流量分流
目前常用的分流技術有以下幾種。
⑴網絡負載均衡。此處的負載均衡,是一種分工合作的的形式。用戶訪問主服務器時,由主服務器依算法把用戶跳轉到各臺成員主機,而實現流量分攤。
⑵使用DNS輪詢技術。大多域名注冊商都支持多條A記錄的解析,其實這就是DNS輪詢,DNS服務器將解析請求按照A記錄的順序,逐一分配到不同的IP上,這樣就完成了簡單的負載均衡。
2.2 業務計算量分流
⑴使用F5 BIG-IP LTM(本地流量管理器)進行分流。該產品是流量和內容進行管理分配的設備。它提供12種靈活的算法將數據流有效地轉發到它所連接的服務器群。而面對用戶,只是一臺虛擬服務器。用戶此時只需訪問定義于BIG-IP LTM上的一臺服務器,即虛擬服務器(Virtual Server)。但他們的數據流卻被BIG-IP靈活地均衡到所有的物理服務器。
⑵使用反向代理進行業務分流。反向代理(Reverse Proxy)方式是指以代理服務器來接受Internet上的網絡連接請求,然后將這些請求轉發給內部網絡上的服務器,并將從服務器上得到的結果返回給Internet上請求連接的客戶端。
2.3 網站進行分地域部署和業務切分
⑴內容分發網絡(CDN)。CDN的通俗理解就是網站加速,CPU均衡負載,可以解決跨運營商,跨地區,服務器負載能力過低,帶寬過少等帶來的網站打開速度慢等問題。
⑵地域分站點。在不同的城市托管不同的主機,依IP所屬城市自行跳轉到各自的站點。每個站點還可以提供地域相關的內容和服務。
3 擴容常見問題
3.1 應該處理好失效轉移(failover),提高用戶體驗
當某個成員服務器宕機時,無法為終端用戶提供服務,系統應該自動地切換,把終端用戶分派到其它正常的服務器上,為其感覺不到服務器已經更新,從而實現不間斷的服務、提高用戶體驗。常用的失效轉移監控技術,有心跳線等。
3.2 保持好用戶會話的信息,無間斷為用戶服務
分布式部署環境下,常用的保持用戶會話狀態的方法有:
⑴使用共享式Session保存會話信息。共享式Session,是指多個成員服務器,把會話信息(Session)從本機的內存中取出來,進行集中存放。這樣當服務器A宕機時,服務器B可以從集中存放處,取出會話信息,得到用戶身份等信息,繼續為用戶服務。共享式Session可以存儲在指定的服務器進程中、可以存儲到數據庫中、也可以存儲到Nosql內存數據庫中。因為會話信息的集中存取,該點成為單點時,會使網站的可靠性降低。所以適用于規模較小的分布式環境中。
⑵使用客戶端小甜餅(Client Cookie)保存會話信息。通過把用戶的身份信息通過加密算法轉換,然后放在終端瀏覽器中。用戶終端每次訪問服務器時,都通過HTTP協議攜帶了該Cookie,服務器端解析、解密后,得到用戶會話信息,繼續為用戶提供服務。該方案屬于用戶會話的分布式存儲,不存在單點問題,可以用在大型的分布式環境中。
最后,網站系統的擴容,應該是先找到系統的瓶頸,然后有根據的擴容。才能得到最大的收益投資比,最大化用戶的使用體驗。
[參考文獻]
[1]王麗.《淺析提高網站性能的幾種技術》.
[2]鄧小善.《高訪問量網站性能監測與優化的設計與實現》.