深入剖析影響網站性能的因素及監測手段
一、網站性能現狀
相信都聽說過互聯網八秒定律:用戶訪問一個網站時,如果等待網頁打開的時間超過8秒,超過30%的用戶會放棄等待。根據調查研究,一個網站在10秒內網頁打不開,會有40%的用戶離開該頁面;大部分手機用戶愿意等待的加載時間為6-10秒;1秒鐘延遲會導致轉化率下降7%。
目前越來越多的互聯網網站和應用承載著公司的核心商業價值,每當網站性能出現問題時,直接會影響到公司形象甚至收益,所以如何及時對網站性能進行監測分析,意義重大。
當前互聯網巨頭 Google、Facebook 等每年均投入了巨大的人力和物力,來對性能進行監測優化,這印證了高性能網站能夠增加流量、提高用戶體驗,最終增加業務收入、降低運營成本。
二、影響網站性能的罪魁禍首
影響網站打開速度的因素有很多,包括網絡帶寬、服務器性能、公網傳輸質量、網頁內容設計、DNS 解析時間等。
1. 網絡寬帶
“***公里”是指萬維網流量向用戶傳送的***個出口,是網站服務器接入互聯網鏈路所能提供的帶寬。此帶寬決定了一個網站能為用戶提供的訪問速度和并發訪問量。一個網站出口帶寬越大,能服務的用戶就越多;當用戶請求數據量超過該網站所能提供的帶寬時,就會在出口處形成擁塞,從而導致用戶訪問受阻。
2. 服務器性能
衡量服務器性能時,一般會涉及到幾個指標。如 CPU、內存、QPS、load、RT,其中 CPU、內存、load 來衡量機器性能,QPS、RT 來衡量應用性能。一般建議 CPU、內存、load、RT 越低越好;QPS 則越大越好。
3. 公網傳輸影響
網站服務器到用戶之間要經過網站所在的 IDC 或云機房、骨干網、用戶所在城域網、用戶所在接入網等。如果網站和用戶之間距離遙遠,比如跨國或者跨多個省份,不可避免的將會帶來較長的傳輸時延,影響用戶體驗;同時用戶接入帶寬差、跨越 ISP 也會影響傳輸效果。這些問題互聯網本身未進行解決(CDN、分布式機房等技術除外)。
如果網站服務器放在海外比如香港、美國、歐洲等地,而用戶在國內,此時用戶訪問該網站的效果也將會打折扣。
4. 網頁內容設計
網頁文件的大小是網站能否快速打開的一個重要因素。壓縮并減小網頁里面的圖片、視頻文件,可以提升打開速度。
網站前端很龐大,如果本身資源未做合并和壓縮、http請求太多、未設置瀏覽器緩存、動靜態使用不當、代碼過于冗余都會造成網頁性能瓶頸。
5. DNS解析時間
DNS 解析服務是在HTTP連接建立之前的一個過程。從用戶主機上調用應用程序的角度看,DNS 是一個提供簡單、直接轉換服務的黑盒子,實際上 DNS 解析服務相當復雜。
DNS 解析時間對網站性能打開速度影響非常明顯,筆者建議選擇穩定可靠的解析服務商,這樣在解析速度、處理能力、安全性方面都將有一定保障,另外可通過 DNS 預讀取、DNS 緩存、拆分域名來減少 DNS 域名解析時間。
影響網站性能的幾大因素
三、網站性能監測手段
市面上常見的能對網站性能監測專業廠商很多,筆者在 CDN廠商呆過幾年,對這行業有一些了解。比較知名的有聽云、監控寶、博瑞、Gomez、OneAPM 等,這些都屬于專業權威的性能監控平臺,可以對瀏覽器、手機應用、服務器性能、網絡、API 等多維度監測;其次騰訊云、阿里云、網宿及相關云廠商也有針對網站、服務器、劫持等維度的監控,除了自用以外,也可為接入的客戶提供全方位的監測服務;市面上還有些免費即時監測平臺如 17ce,由于免費所以采用的監測機的性能上可能會略差一些。當然市場上遠不止以上這些性能監測產品,此處略過一百字……
網站新性能監測廠商
以某廠商的網站性能監測為例,來具體描述下監測手段:
某廠商監測原理圖
1. 監測節點
監測節點分為多種,分別為 lastmile(***一公里,即用戶)、IDC 監測、移動節點監測。Lastmile 即模擬真實用戶來向網站發起請求,IDC 監測即從 IDC 機房向網站發起請求,移動節點即從手機端向網站發起請求。此處建議以 lastmile 為主,IDC 監測由于自身網絡質量好,監測的效果并不能反應真實的網站性能。
采用lastmile的網絡節點對各大運營商 lastmile 節點的網絡狀況進行監測,通過分散于全國或全球不同地理位置分布的監測機來模擬真實的用戶訪問。由于監測節點為私募機器,機器可能會因網絡出口或帶寬等問題影響監測性能。
監測節點數量和地理分布均為越多越好。考慮到成本,一般根據網站實際用戶的訪問情況來定。常見的比如大型電商和視頻網站的監測,節點至少要在一二線城市有20-30個,除了電信、聯通、移動三大 ISP 外,長寬、教育網、鐵通等小 ISP 也需要合理布置。采集頻率一般半小時或一小時一次即可。
2. 監測對象
通常能監測的對象有圖片、頁面、視頻文件、直播、動態行為、上傳過程等,每種對象使用的場景不同。圖片、頁面、視頻文件、直播一般適用于電商、門戶網站、視頻網站等靜態資源較多的行業,用戶比較關注資源的加載和播放速度,此類監測最多。一般由于靜態資源都會做 CDN 邊緣緩存,所以監測的效果都不錯;動態行為、上傳過程一般適用于登錄等交互類的場景,比如企業內部的應用系統,由于動態交互類行為需要實時走公網傳輸回源,所以監測的效果受制于公網的波動影響,效果一般比較差。
3. 監測指標
指標一般包括這幾個方面,平均響應時間、可用性、首包時間、DNS 時間、建連時間、內容下載時間、SSL 握手時間(對 HTTPS 協議監測)、重定向時間。
其中可靠性指訪問成功率,該值越高越好;建連時間指用戶和 WEB 服務器建立 TCP/IP 連接消耗的時間;首包時間指用戶瀏覽器發起 HTTP 請求結束開始,到收到 WEB 服務器返回的***個數據包的消耗時間。SSL 握手時間是針對 HTTPS 網站特有,重定向時間是配置了301或302跳轉所對應的時間。
某網站監測效果如下:
通過針對網站甚至全平臺的性能監測,可以發現存在的性能問題并根據性能測試結果進行對應優化以提升系統整體性能。并有效幫助企業改善網站應用的用戶體驗,提升業務轉化,減少用戶流失。
【本文是51CTO專欄機構“豈安科技”的原創文章,轉載請通過微信公眾號(bigsec)聯系原作者】