網站性能分析及優化方法

負載均衡

            原創---總結網站性能分析及方法

     LVS

   簡介:

LVS是一個開源的軟件,可以實現LINUX平臺下的簡單負載均衡。LVS是Linux Virtual Server的縮寫,意思是Linux虛擬服務器。

分爲三層結構 1.負載調度器 2.服務器池 3.共享存儲

   優點:

  1、開源,免費

  2、在網上能找到一些相關技術資源

  3、具有軟件負載均衡的一些優點

  缺點:

  1、具有開源產品常有的缺點,最核心的就是沒有可靠的支持服務,沒有人對其結果負責;

  2、功能比較簡單,支持複雜應用的負載均衡能力較差,如算法較少等;

  3、開啓隧道方式需重編譯內核;

  4、配置複雜;

5、只支持LINUX,如果應用還包括WINDOWS、 SOLIRIS等就不行了。

 

反向代理

     簡介:

     指以代理服務器來接受internet上的連接請求,然後將請求轉發給內部網絡上的服務器,並將從服務器上得到的結果返回給internet上請求連接的客戶端,此時代理服務器對外就表現爲一個服務器

 

DNS

  簡介:

DNS負載均衡的優點是經濟簡單易行,並且服務器可以位於internet上任意的位置。但它也存在不少缺點:

1. 爲了使本dns服務器和其他dns服務器及時交互,保證dns數據及時更新,使地址能隨機分配,一般都要將dns的刷新時間設置的較小,但太小將會使dns流量大增造成額外的網絡問題。

2. 一旦某個服務器出現故障,即使及時修改了dns設置,還是要等待足夠的時間(刷新時間)才能發揮作用,在此期間,保存了故障服務器地址的客戶計算機將不能正常訪問服務器。

3. dns負載均衡採用的是簡單的輪循負載算法,不能區分服務器的差異,不能反映服務器的當前運行狀態,不能做到爲性能較好的服務器多分配請求,甚至會出現客戶請求集中在某一臺服務器上的情況。

4. 要給每臺服務器分配一個internet上的ip地址,這勢必會佔用過多的ip地址

服務器集羣

         LVS可以實現服務器集羣功能

        原創---總結網站性能分析及方法

 

CDN

     簡介:

    Content Delivery Network,即內容分發網絡。其目的是通過在現有的Internet中增加一層新的網絡架構,將網站的內容發佈到最接近用戶的網絡"邊緣",使用戶可以就近取得所需的內容,解決Internet網絡擁擠的狀況,提高用戶訪問網站的響應速度。

包括分佈式存儲、負載均衡、網絡請求的重定向和內容管理4個部分

   特點

   1、本地Cache加速 提高了企業站點(尤其含有大量圖片和靜態頁面站點)的訪問速度,並大大提高以上性質站點的穩定性

  2、鏡像服務消除了不同運營商之間互聯的瓶頸造成的影響,實現了跨運營商的網絡加速,保證不同網絡中的用戶都能得到良好的訪問質量。

  3、遠程加速遠程訪問用戶根據DNS負載均衡技術智能自動選擇Cache服務器,選擇最快的Cache服務器,加快遠程訪問的速度

  4、帶寬優化自動生成服務器的遠程Mirror(鏡像)cache服務器,遠程用戶訪問時從cache服務器上讀取數據,減少遠程訪問的帶寬、分擔網絡流量、減輕原站點WEB服務器負載等功能。

  5、集羣抗攻擊廣泛分佈的CDN節點加上節點之間的智能冗於機制,可以有效地預防黑客入侵以及降低各種DDoS攻擊對網站的影響,同時保證較好的服務質量。

  關鍵技術包含以下幾個方面;

  (1)內容發佈:它藉助於建立索引、緩存、流分裂、組播(Multicast)等技術,將內容發佈或投遞到距離用戶最近的遠程服務點(POP)處;

  (2)內容路由:它是整體性的網絡負載均衡技術,通過內容路由器中的重定向(DNS)機制,在多個遠程POP上均衡用戶的請求,以使用戶請求得到最近內容源的響應;

  (3)內容交換:它根據內容的可用性、服務器的可用性以及用戶的背景,在POP的緩存服務器上,利用應用層交換、流分裂、重定向(ICP、WCCP)等技術,智能地平衡負載流量;

(4)性能管理:它通過內部和外部監控系統,獲取網絡部件的狀況信息,測量內容發佈的端到端性能(如包丟失、延時、平均帶寬、啓動時間、幀速率等),保證網絡處於最佳的運行狀態

 

 原創---總結網站性能分析及方法

IDC

     簡介:

         Internet Data Center,就是電信部門利用已有的互聯網通信線路、帶寬資源,建立標準化的電信專業級機房環境,爲企業、政府提供服務器託管、租用以及相關增值等方面的全方位服務。

作用:

就像骨幹網、接入網一樣,它提供了一種高端的數據傳輸(Data Delivery)的服務,提供高速接入的服務

它不僅是數據存儲的中心,而且是數據流通的中心,它應該出現在Internet網絡中數據交換最集中的地方。所以在網絡中的位置和總的網絡帶寬容量,它構成了網絡基礎資源的一部分。它提供了一種高端的數據傳輸(Data Delivery)的服務,提供高速接入的服務

原創---總結網站性能分析及方法

 

圖片服務器

       簡介:

            圖片服務器需要與應用服務器相分離。因爲頁面中包含太多圖片,每次的圖片請求會增大服務器壓力。把圖片服務器分離出來,會降低提供頁面訪問請求的服務器系統壓力,並且可以保證系統不會因爲圖片問題而崩潰。圖片服務器我們也會應用不同的應用策略,比如多臺集羣等

 

鏡像服務器

       簡介:

            鏡像服務器(Mirror server)與主服務器的服務內容都是一樣的,只是放在一個不同的地方,分擔主的負載

           原創---總結網站性能分析及方法

 

 

數據庫端

Mysql cluster(mysql 簇)

       簡介:

            該技術允許在無共享的系統中部署“內存中”數據庫的簇。通過無共享體系結構,系統能夠使用廉價的硬件,而且對軟硬件無特殊要求。此外,由於每個組件有自己的內存和磁盤,不存在單點故障。

NDB是一種“內存中”存儲引擎,它具有可用性高和數據一致性好的特點。能夠使用多種故障切換和負載平衡選項配置NDB存儲引擎

集羣中的每個數據庫服務器可以用廉價PC代替,可以節約成本

 

 原創---總結網站性能分析及方法

數據庫分佈式系統

       讀寫分離

            簡介:

               設置主從服務器,主服務器負責增刪改操作,從服務器負責查詢操作。

               頁面對數據庫進行不同類型的操作,可以訪問不同的數據庫,從而緩解主服務器的壓力

                主從服務器數據同步,可以用MySQL Proxy來完成之間的操作。因爲服務器負載、網絡擁堵等方面的原因,主與從之間的數據同步延遲是完全沒有保證的。

                MySQL Proxy:

                MySQL Proxy是基於MySQL Client 和 MySQL Server之間的代理程序,能夠完成對Client所發請求的監控、修改。從Client角度看,通過Proxy訪問Server和直接訪問Server沒有任何區別

 

 原創---總結網站性能分析及方法

       垂直拆分庫:

            簡介:

                認爲是根據表,功能來拆分,如系統功能模塊一個庫,軌跡功能模塊一個庫,報警模塊一個庫等,那這些就可以根據功能拆分了。

拆分的優點有:

1.       數據庫清析明確,相對程序模塊也跟着清析,有點象模塊化了

2.       維護也方便,問題定位快,

缺點:

1.       若有庫之關的關聯就不能使用數據庫的關聯完成,需要程序完成了

2.       數據庫的事務處理也變複雜,維護也會帶來困難了

水平拆分庫

       簡介:

         根據某一些表的行來拆分庫,如用戶表,有1億一數據,若是放在一張表中,查死,可以根據某一規則拆分,如用戶id小於多少一個庫,id小於多少與大於多少一個庫(這個可以爲以後用戶不斷的增多時),也可以通過其它規則,如取模之類,這種拆分要求所有關係的數據表跟着一起拆分(只能儘量作到),如BBS中,1-10W的用戶發的貼都會跟着存放到同一個庫中,10W-20W的存在另一個庫,,這樣,可以應用到數據庫的關係查詢之類,也很好的事務處理了

優點:

表關聯,事務處理,應用程序處理方便,基本不會有很大的表處理

缺點:

切分相對複雜,後期維護人員難度增加,問題跟蹤也比較難,系統中各模塊耦合度較高,可能會對後面數據的適移拆分造成一下的困難

 

內存數據庫

            簡介:

用內存來支撐IOPS。將數據放在內存中直接操作的數據庫。相對於磁盤,內存的數據讀寫速度要高出幾個數量級,將數據保存在內存中相比從磁盤上訪問能夠極大地提高應用的性能。同時,內存數據庫拋棄了磁盤數據管理的傳統方式,基於全部數據都在內存中重新設計了體系結構,並且在數據緩存、快速算法、並行操作方面也進行了相應的改進,所以數據處理速度比傳統數據庫的數據處理速度要快很多,一般都在10倍以上。內存數據庫的最大特點是其“主拷貝”或“工作版本”常駐內存,即活動事務只與實時內存數據庫的內存拷貝打交道

相關產品

內存數據庫有美國MCObject公司的eXtremeDB、Oracle公司的TimeTen

Oracle公司的timeten示意圖

 原創---總結網站性能分析及方法

 

代碼端

動態頁面靜態化

     簡介

     1.加快頁面打開瀏覽速度,靜態頁面無需連接數據庫打開速度較動態頁面有明顯提高;

2.減輕服務器負擔,瀏覽網頁無需調用系統數據庫;

3.有利於搜索引擎優化SEO,Baidu、Google都會優先收錄靜態頁面,不僅被收錄的快還收錄的全;

4.安全,靜態頁面從理論上講是沒有攻擊漏洞的

        Smarty

            簡介:

            它分離了邏輯代碼和外在的內容,提供了一種易於管理和使用的方法,用來將原本與HTML代碼混雜在一起PHP代碼邏輯分離

1. 速度:採用Smarty編寫的程序可以獲得最大速度的提高,這一點是相對於其它的模板引擎技術而言的。

2. 編譯型:採用Smarty編寫的程序在運行時要編譯成一個非模板技術的PHP文件,這個文件採用了PHP與HTML混合的方式,在下一次訪問模板時將WEB請求直接轉換到這個文件中,而不再進行模板重新編譯(在源程序沒有改動的情況下)

3. 緩存技術:Smarty選用的一種緩存技術,它可以將用戶最終看到的HTML文件緩存成一個靜態的HTML頁,當設定Smarty的cache屬性爲true時,在Smarty設定的cachetime期內將用戶的WEB請求直接轉換到這個靜態的HTML文件中來,這相當於調用一個靜態的HTML文件

 原創---總結網站性能分析及方法

     Rewrite模塊

        簡介:

        一種服務器的重寫脈衝技術,它使得服務器可以支持 URL 重寫,是一種最新流行的服務器技術

     Memorycache

            簡介:

                   是一個高性能的分佈式內存對象緩存系統,用於動態Web應用以減輕數據庫負載。它通過在內存中緩存數據和對象來減少讀取數據庫的次數,從而提供動態、數據庫驅動網站的速度。Memcached基於一個存儲鍵/值對的hashmap。通過memcached協議與守護進程通信。但是它並不提供冗餘(例如,複製其hashmap條目);當某個服務器S停止運行或崩潰了,所有存放在S上的鍵/值對都將丟失。

              原創---總結網站性能分析及方法



 

     Sql語句優化

1.       分析sql語句,把常用的sql建立索引

2.  根據個人經驗,有若干技巧sql寫法的技巧。例如select 不要寫*,需要寫出每一個表中列名稱

 

     Js/css文件優化

            Js/css 文件用工具(YUI yuicompressor-x.y.z.jar )進行壓縮,以壓縮包的形式嵌入網頁中。這樣可以減少css/js加載時間,提高網頁速度。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章