背景說明
使用天翼云CDN加速后,正常情況下網站各個維度的性能指標均會得到明顯提升,具體的性能指標以及相關參數信息,詳情請見:性能指標。如果使用CDN加速后沒有得到預期的性能提升,可參見本文提到的多個因素。
詳細信息
使用CDN加速后網站訪問速度較慢,是一個較為復雜的綜合性問題,我們可以通過了解CDN加速原理(詳情請見:天翼云CDN加速簡介 里的加速原理模塊),以及CDN加速涉及到的各個環節,初步判斷可能是哪些方面的原因。CDN加速(CDN,Content Delivery Network),即內容分發網絡,是基于天翼云遍布全球的網絡節點提供的內容分發加速服務。它將源站內容分發至最接近用戶的節點,使用戶可就近獲取所需內容,解決因跨運營商、跨地域、服務器帶寬及性能瓶頸帶來的訪問延遲問題,提高用戶訪問的響應速度和成功率。而一個完整的用戶請求涉及的環節如下:DNS解析-->TCP建聯-->SSL建聯(如為https訪問則涉及此環節)-->客戶端發送請求-->服務端響應首包-->服務端響應完整文件,這其中各個環節均可能影響到最終訪問速度的快慢。
要系統性的衡量某個域名或網站經過天翼云CDN加速后的訪問效果數據,建議使用第三方撥測工具,例如,基調聽云、博睿數據平臺,或通過在APP中自行開發客戶端監測工具,搜集大數據進行分析。
注意基調和博睿為外部第三方平臺,需要付費使用。
結合上述撥測或監測工具的綜合分析數據,可從如下維度逐個分析訪問慢的原因:
首先,判斷是否局部區域訪問慢,還是全局性訪問慢。通過基調或博睿的訪問性能數據,可以看到各省份運營商的性能表現,如從運營商和省份角度均未看到明顯性能差的部分,則可初步判斷是全局性訪問慢。
如果是全局性訪問慢,則可從如下角度排查
- 訪問慢的URL是否為動態不可緩存內容?
如果加速內容包含例如php、asp等由源站實時生成的動態文件,因CDN加速主要對靜態可緩存文件做加速,動態部分是直接回源的,起不到較好的加速效果;此時若源站大部分文件是視頻、APP等大文件,則推薦將源站內容做動靜態分離,將動態部分的域名獨立出來,使用全站加速產品對該域名做加速;若源站主要為動靜態混合的小文件,且動態文件較多,則可考慮直接調整為使用全站加速,利用全站加速的動靜分離、智能路由、傳輸優化等技術來提升訪問效果。
- 是否源站本身響應慢?
如為動態URL,或頻繁需要更新的靜態內容,此時如果源站響應較慢,也會引起用戶訪問慢。此情況下,可從如下兩方面提升源站響應速度:
- 如為源站性能本身限制,例如源站單機能力不足,CPU或帶寬跑滿等原因造成響應慢,則應對源站做擴容處理,例如調整為為更高硬件配置的服務器,或加入更多源站服務器構成集群共同服務。
- 如為源站網絡問題導致,例如機房出口不穩定,或CDN回源節點和源站之間涉及跨境鏈路,則可考慮調整源站部署位置,優化回源節點到源站之間的網絡鏈路。例如,如果存在用戶訪問為國內,源站在海外的場景,建議采用在國內也部署源站,國內+海外源站定期同步的方式來進行優化。
- 是否為可緩存文件但命中率較低?
如果訪問慢的文件為可緩存文件,但是查看客戶端收到的HTTP響應頭發現未命中緩存(具體如何查看是否命中緩存,詳情請見:如何通過瀏覽器查看CDN緩存是否成功),此時可以參考:CDN緩存命中率較低可能的原因 進行排查,并結合:提高CDN緩存命中率 進行命中率提升和優化。
最后,查看是否可使用CDN的可優化手段,例如可對html、js、css等文件開啟頁面優化、文件壓縮功能等,也可提升訪問效果。詳情請見:html頁面優化、文件壓縮。
如果是局部訪問慢,則可從如下角度查看
- 是否DNS設置錯誤導致?
個別用戶可能存在local DNS設置錯誤,導致出現跨地域或跨運營商訪問。因為CDN的權威DNS是基于用戶請求的localDNS來判斷所屬的地區和運營商,從而將請求引導至對應最近的CDN節點,如果用戶使用的localDNS錯誤,例如北京電信的用戶使用了福建聯通的localDNS,則可能會被引導至聯通的節點,導致用戶訪問響應慢。解決該問題的方式是引導用戶設置正確的localDNS,或將其設置為自動獲取。
- 是否存在中國內地用戶訪問到海外節點?
如域名選擇的加速范圍為全球(不含中國內地),則此時國內用戶將訪問到海外節點,涉及跨國鏈路,時延較高。此場景下建議將域名加速范圍調整為全球,或國內用戶使用獨立的域名站點,并設置對應域名加速范圍為中國內地,通過上述兩種方式使得國內用戶將訪問到國內節點,海外用戶訪問到海外節點,訪問效果得到提升。
- 是否用戶至CDN節點側網絡情況差導致?
如僅某省份運營商訪問慢,可以通過基調或博睿中對應省份運營商用戶到CDN節點的ping信息進行網絡情況的初步判斷,如果僅少量用戶ping的網絡延時異常,則可能是對應客戶端出口網絡問題。
如以上參考維度均未排查出問題,請提交工單至天翼云客服人工處理。