• <strike id="mem0a"><s id="mem0a"></s></strike>
    
    
  • <kbd id="mem0a"></kbd>
    <ul id="mem0a"></ul>
     
    深圳網站建設設計

    將想法與焦點和您一起共享

    深圳網站建設設計 深圳網站優化排名 深圳網站設計制作欣賞

    大型高性能網站性能測試方法

    2018-01-13  閱讀: 深圳網站建設設計

    大型高性能網站性能測試方法
    性能測試是一個總稱,具體可細分為性能測試、負載測試、壓力測試、穩定性測試。

    深圳網站建設以系統設計初期規劃的性能指標為預期目標,對系統不斷施加壓力,驗證系統在資源可接受范圍內,是否能達到性能預期。

     

    負載測試
    對系統不斷地增加并發請求以增加系統壓力,直到系統的某項或多項性能指標達到安全臨界值,如某種資源已經呈飽和狀態,這時繼續對系統施加壓力,系統的處理能力不但不能提高,反而會下降。

     

    壓力測試

    超過安全負載的情況下,對系統繼續施加壓力,直到系統崩潰或不能再處理任何請求,以此獲得系統最大壓力承受能力。

     

    穩定性測試

    被測試系統在特定硬件、軟件、網絡環境條件下,給系統加載一定業務壓力,使系統運行一段較長時間,以此檢測系統是否穩定。在不同生產環境、不同時間點的請求壓力是不均勻的,呈波浪特性,因此為了更好地模擬生產環境,穩定性測試也應不均勻地對系統施加壓力。

    性能測試是一個不斷對系統增加訪問壓力,以獲得系統性能指標、最大負載能力、最大壓力承受能力的過程。所謂的增加訪問壓力,在系統測試環境中,就是不斷增加測試程序的并發請求數,一般說來,性能測試遵循如圖4.3所示的拋物線規律。圖4.3中的橫坐標表示消耗的系統資源,縱坐標表示系統處理能力(吞吐量)。在開始階段,隨著并發請求數目的增加,系統使用較少的資源就達到較好的處理能力U?b段),這一段是網站的日常運行區間,網站的絕大部分訪問負載壓力都集中在這一段區間。

    被稱作性能測試,測試目標是評估系統性能是否符合需求及設計目標;隨著壓力的持續增加,系統處理能力增加變緩,直到達到一個最大值(c點),這是系統的最大負載點,這一段被稱作負載測試。測試目標是評估當系統因為突發事件超出日常訪問壓力的情況下,保證系統正常運行情況下能夠承受的最大訪問負載壓力;超過這個點后,再增加壓力,系統的處理能力反而下降,而資源消耗卻更多,直到資源消耗達到極限(d點),這個點可以看作是系統的崩潰點,超過這個點繼續加大并發請求數目,系統不能再處理任何請求,這一段被稱作壓力測試,測試目標是評估可能導致系統崩潰的最大訪問負載壓力。

    大型高性能網站性能測試方法

     

    性能測試反應的是系統在實際生產環境中使用時,隨著用戶并發訪問數最的增加,系統的處理能力。與性能曲線相對應的是用戶訪問的等待時間(系統響應時間),如圖4.4所示。

    大型高性能網站性能測試方法

    4.1.4性能測試報告

    測試結果報告應能夠反映上述性能測試曲線的規律,閱讀者可以得到系統性能是否滿足設計目標和業務要求、系統最大負載能力、系統最大壓力承受能力等重要信息,表4.2是一個簡單示例。

    大型高性能網站性能測試方法

    4.1.5性能優化策略

    如果性能測試結果不能滿足設計或業務需求,那么就需要尋找系統瓶頸,分而治之,逐步優化。

     

    1.性能分析

    大型網站結構復雜,用戶從瀏覽器發出請求直到數據庫完成操作事務,中間需要經過很多環節,如果測試或者用戶報告網站響應緩慢,存在性能問題,必須對請求經歷的各個環節進行分析,排查可能出現性能瓶頸的地方,定位問題。

    排查—個網站的性能瓶頸和排查一個程序的性能瓶頸的手法基本相同:檢查請求處理的各個環節的日志,分析哪個環節響應時間不合理、超過預期;然后檢查監控數據,分析影響性能的主要因素是內存、磁盤、網絡、還是CPU,是代碼問題還是架構設計不合理,或者系統資源確實不足。

     

    2.性能優化

    定位產生性能問題的具體原因后,就需要進行性能優化,根據網站分層架構,可分為Web前端性能優化、應用服務器性能優化、存儲服務器性能優化3大類。

     

    4.2 Web前端性能優化

    一般說來Web前端指網站業務邏輯之前的部分,包括瀏覽器加載、網站視圖模型、圖片服務、CDN服務等,主要優化手段有優化瀏覽器訪問、使用反向代理、CDN等。

     

    4.2.1瀏覽器訪問優化

    1.減少http請求

    HTTP協議是無狀態的應用層協議,意味著每次HTTP請求都需要建立通信鏈路、進行數據傳輸,而在服務器端,每個HTTP都需要啟動獨立的線程去處理。這些通信和服務的開銷都很昂貴,減少HTTP請求的數目可有效提高訪問性能。

    減少HTTP的主要手段是合并CSS、合并JavaScript、合并圖片。將瀏覽器一次訪問需要的JavaScript、CSS合并成一個文件,這樣瀏覽器就只需要一次請求。圖片也可以合并,多張圖片合并成一張,如果每張圖片都有不同的超鏈接,可通過CSS偏移響應鼠標點擊操作,構造不同的URL。

     

    2.使用瀏覽器緩存
    對一個網站而言,CSS、JavaScript、Logo、圖標這些靜態資源文件更新的頻率都比較低,而這些文件又幾乎是每次HTTP請求都需要的,如果將這些文件緩存在瀏覽器中,

     

    較低,而這些文件又幾乎是每次HTTP請求都需要的,如果將這些文件緩存在瀏覽器中,可以極好地改善性能。通過設置HTTP頭中Cache-Control和Expires的屬性,可設定瀏覽器緩存,緩存時間可以是數天,甚至是幾個月。

    在某些時候,靜態資源文件變化需要及時應用到客戶端瀏覽器,這種情況,可通過改變文件名實現,即更新JavaScript文件并不是更新JavaScript文件內容,而是生成一個新的JS文件并更新HTML文件中的引用。

    使用瀏覽器緩存策略的網站在更新靜態資源時,應采用批量更新的方法,比如需要更新10個圖標文件,不宜把10個文件一次全部更新,而是應一個文件一個文件逐步更新,并有一定的間隔時間,以免用戶瀏覽器突然大量緩存失效,集中更新緩存,造成服務器負載驟增、網絡堵塞的情況。

     

    3.啟用壓縮
    在服務器端對文件進行壓縮,在瀏覽器端對文件解壓縮,可有效減少通信傳輸的數在服務器端對文件進行壓縮,在瀏覽器端對文件解壓縮,可有效減少通信傳輸的數據墩。文本文件的壓縮效率可達80%以上,因此HTML、CSS、JavaScript文件啟用GZip壓縮可達到較好的效果。但是壓縮對服務器和瀏覽器產生一定的壓力,在通信帶寬良好,而服務器資源不足的情況下要權衡考慮。

     

    4.CSS放在頁面最上面、JavaScript放在頁面最下面

    瀏覽器會在下載完全部CSS之后才對整個頁面進行渲染,因此最好的做法是將CSS放在頁面最上面,讓瀏覽器盡快下載CSS。JavaScript則相反,瀏覽器在加載JavaScript后立即執行,有可能會阻塞整個頁面,造成頁面顯示緩慢,因此』avaScript最好放在頁面最下面。但如果頁面解析時就需要用到JavaScript,這時放在底部就不合適了。

     

    5.減少Cookie傳輸

    一方面,Cookie包含在每次請求和響應中,太大的Cookie會嚴重影響數據傳輸,因此哪些數據需要寫入Cookie需要慎重考慮,盡最減少Cookie中傳輸的數據最。另一方面,對于某些靜態資源的訪問,如CSS、Script等,發送Cookie沒有意義,可以考慮靜態資源使用獨立域名訪問,避免請求靜態資源時發送Cookie,減少Cookie傳輸的次數。

    4.2.2 CDN 加速
    CDN( Content Distribute Network,內容分發網絡)的本質仍然是一個緩存,而且將數據緩存在離用戶最近的地方,使用戶以最快速度獲取數據,即所謂網絡訪問第一跳,如圖4.5所示。

    由于CDN部署在網絡運營商的機房,這些運營商又是終端用戶的網絡服務提供商,因此用戶請求路由的第一跳就到達了 CDN服務器,當CDN中存在瀏覽器請求的資源時,從CDN直接返回給瀏覽器,最短路徑返回響應,加快用戶訪問速度,減少數據中心負載壓力。

    大型高性能網站性能測試方法

    CDN能夠緩存的一般是靜態資源,如圖片、文件、CSS、Script腳本、靜態網頁等,但是這些文件訪問頻度很高,將其緩存在CDN可極大改善網頁的打開速度。

    將文章分享到..