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