2024-01-24 分類: 網(wǎng)站建設(shè)
基本上,互聯(lián)網(wǎng)上的每個(gè)人都體驗(yàn)過內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)的好處。包括 Google、Apple 和 Microsoft 等公司在內(nèi)的大多數(shù)技術(shù)公司都使用 CDN 來減少加載網(wǎng)頁內(nèi)容的延遲。
CDN 通常會將服務(wù)器放置在不同網(wǎng)絡(luò)之間的交換點(diǎn)。這些互聯(lián)網(wǎng)交換點(diǎn)(IXP)是不同互聯(lián)網(wǎng)提供商連接的主要位置,以便彼此提供對來自其不同網(wǎng)絡(luò)的流量的訪問。除了 IXP 外,CDN 還將服務(wù)器放置在位于全球高流量區(qū)域和戰(zhàn)略位置的數(shù)據(jù)中心,以便能夠盡快移動流量。
CDN 的一大優(yōu)勢是它能夠快速、高效地交付內(nèi)容。CDN 性能優(yōu)化可分為三個(gè)類別。
縮短距離:縮短客戶端與所請求數(shù)據(jù)之間的物理距離 優(yōu)化硬件/軟件:提高服務(wù)器端基礎(chǔ)結(jié)構(gòu)的性能,例如通過使用固態(tài)硬盤驅(qū)動器和高效負(fù)載均衡 減少數(shù)據(jù)傳輸:采用各種技術(shù)來減小文件大小,以便快速進(jìn)行初始頁面加載為了便于理解使用 CDN 的好處,我們來看看沒有 CDN 時(shí)普通客戶端/服務(wù)器數(shù)據(jù)傳輸會是什么樣子。
使用 CDN 和不使用 CDN 在加載時(shí)間上有何不同?假設(shè)紐約的某個(gè)人需要訪問新加坡服務(wù)器上托管的網(wǎng)站。這兩個(gè)位置相隔甚遠(yuǎn),物理距離為大約 9,520 英里。
如果承載網(wǎng)站內(nèi)容的服務(wù)器(源站服務(wù)器)位于新加坡,則對各個(gè)網(wǎng)頁資產(chǎn)的每個(gè)請求都必須從紐約前往新加坡,然后再返回。如同搭乘具有許多連接點(diǎn)的國際航班一樣,每個(gè)請求在從 A 點(diǎn)傳到 B 點(diǎn)的遠(yuǎn)距路程中都要經(jīng)過一系列路由器。
如果要查看計(jì)算機(jī)從當(dāng)前位置到達(dá)特定 Web 服務(wù)需要多少個(gè)不同連接點(diǎn)(躍點(diǎn))的真實(shí)示例,可以使用桌面端計(jì)算機(jī)探索一下 traceroute 實(shí)用程序。
因?yàn)閺募~約到新加坡的請求需要沿途經(jīng)過每個(gè)路由器位置,所以總距離和每個(gè)路由器處理請求所花費(fèi)的時(shí)間都會增加時(shí)間量(延遲)。一旦源服務(wù)器處理請求并響應(yīng)發(fā)出請求的客戶端,它就會通過類似的路由器序列將信息發(fā)送回,然后再返回紐約。這一總往返行程的測量在電信中稱為“往返時(shí)間”的 RTT。暫時(shí)忽略可用帶寬和潛在的網(wǎng)絡(luò)擁塞,讓我們來看一個(gè)延遲因素的例子。
為便于闡述,我們假設(shè):
請求從紐約到新加坡需要 250 毫秒。 建立一個(gè)?TCP/IP 連接將添加 3 次 250 毫秒延遲。 網(wǎng)頁需要 5 個(gè)不同的資產(chǎn),包括圖片、JavaScript 文件和網(wǎng)頁本身。我們粗略看一下該網(wǎng)頁的加載時(shí)間:
750 毫秒:在紐約的客戶端和新加坡的源站服務(wù)器之間建立 TCP/IP 連接。 250 毫秒:對網(wǎng)頁的?HTTP?請求從紐約傳送到新加坡。 250 毫秒:紐約的請求者收到來自新加坡的源站服務(wù)器的響應(yīng),響應(yīng)中包含 200 狀態(tài)碼和包括所有需要的其他資產(chǎn)的網(wǎng)頁。 250 毫秒:紐約的客戶端請求這 5 項(xiàng)資產(chǎn)中的每一項(xiàng)。 1500 毫秒:這五項(xiàng)資產(chǎn)從新加坡的源站服務(wù)器異步交付給客戶端。在這個(gè)簡單示例中,網(wǎng)頁加載的總傳輸時(shí)間約為?3000 毫秒。
如您所見,每次發(fā)出請求并發(fā)送響應(yīng)時(shí),都要遍歷紐約客戶與新加坡源站之間的整個(gè)路徑。隨著網(wǎng)站規(guī)模擴(kuò)大并需要更多資產(chǎn),A 點(diǎn)和 B 點(diǎn)之間的延遲會不斷增加。
我們再看一下向紐約的 Web 客戶端提供托管在新加坡的內(nèi)容的示例,但這一次新加坡站點(diǎn)使用一個(gè)在亞特蘭大設(shè)有服務(wù)器的 CDN,其含有靜態(tài)網(wǎng)站的緩存副本:
請求從紐約到亞特蘭大需要 50 毫秒。 建立一個(gè) TCP/IP 連接將添加 3 次 50 毫秒延遲 網(wǎng)頁需要 5 個(gè)不同的資產(chǎn),包括圖片、JavaScript 文件和網(wǎng)頁本身。我們粗略看一下該網(wǎng)頁使用 CDN 時(shí)的加載時(shí)間:
150 毫秒:在紐約的客戶端和亞特蘭大的邊緣服務(wù)器之間建立 TCP/IP 連接。 50 毫秒:對網(wǎng)頁的 HTTP GET 請求從紐約傳送到邊緣服務(wù)器。 50 毫秒:客戶端收到來自邊緣服務(wù)器的響應(yīng),響應(yīng)中包含網(wǎng)頁以及還需要的其他資產(chǎn)的列表。 50 毫秒:客戶端請求這 5 項(xiàng)資產(chǎn)中的每一項(xiàng)。 800 毫秒:這五項(xiàng)資產(chǎn)從邊緣服務(wù)器異步交付給客戶端。網(wǎng)頁加載的總傳輸時(shí)間約為?1100 毫秒。
在本例中,客戶端與內(nèi)容之間距離縮短使靜態(tài)內(nèi)容的延遲時(shí)間縮短了 1900 毫秒;也就是說,加載時(shí)間縮短了將近 2 秒鐘。
通過縮短所有必要流量都需要遍歷的總距離,網(wǎng)站的每一用戶都能節(jié)省大量加載時(shí)間。用戶會隨著等待時(shí)間增加而開始迅速離開站點(diǎn)(跳出),因此這種改進(jìn)既代表了更好的用戶體驗(yàn),也代表著更長的頁面停留時(shí)間。
CDN 如何加載內(nèi)容?什么是高速緩存?如前文所述,當(dāng)客戶端從源站服務(wù)器請求文件時(shí),請求通常需要傳送到服務(wù)器,然后再傳回來。CDN 在稱為“高速緩存”的過程中將靜態(tài)內(nèi)容文件從源站服務(wù)器拉取到分布式 CDN 網(wǎng)絡(luò)中,從而減少延遲。某些 CDN 具有高級功能,允許有選擇地高速緩存動態(tài)內(nèi)容。數(shù)據(jù)經(jīng)過高速緩存之后,CDN 將從最近的 CDN 數(shù)據(jù)中心向客戶端提供內(nèi)容。
完成?TCP 握手后,客戶端計(jì)算機(jī)向 CDN 的網(wǎng)絡(luò)發(fā)出 HTTP 請求。如果內(nèi)容尚未緩存,則 CDN 將首先通過在源站服務(wù)器和 CDN 邊緣服務(wù)器之間進(jìn)行額外請求,從源站下載內(nèi)容。
典型的 CDN 高速緩存過程包含以下 4 個(gè)步驟:
當(dāng)用戶請求網(wǎng)頁時(shí),用戶的請求被路由到 CDN 中最近的邊緣服務(wù)器。 邊緣服務(wù)器接著向源站服務(wù)器請求用戶請求的內(nèi)容。 源站響應(yīng)邊緣服務(wù)器的請求。 最后,邊緣服務(wù)器響應(yīng)客戶端。CDN 與客戶端的近距離價(jià)值是在向源站服務(wù)器發(fā)出初始請求之后體現(xiàn)出來的。一旦數(shù)據(jù)從源站服務(wù)器高速緩存到 CDN 網(wǎng)絡(luò)中,來自客戶端的每個(gè)后續(xù)請求都只需到達(dá)最近的邊緣服務(wù)器即可。這意味著,如果最近的邊緣服務(wù)器比源站服務(wù)器近,就能減少延遲,并且更快提供內(nèi)容。
務(wù)必要牢記一點(diǎn),這不包括下載資產(chǎn)以及處理請求和響應(yīng)所需的時(shí)間;到目前為止,僅計(jì)算在兩個(gè)位置之間傳輸信息所需的傳輸時(shí)間。我們將探索的其他重要延遲因素還包括數(shù)據(jù)縮減、硬盤速度和網(wǎng)絡(luò)擁塞。
CDN 如何通過縮減文件大小來提高速度?為縮短頁面加載時(shí)間,CDN 減少 CDN 的高速緩存服務(wù)器和客戶端之間的總體數(shù)據(jù)傳輸量。當(dāng)傳輸?shù)臄?shù)據(jù)總量下降時(shí),延遲和所需帶寬都會減少。帶來的結(jié)果是更快的頁面加載和更低的帶寬費(fèi)用。這些縮減包括兩個(gè)關(guān)鍵組成部分:
極簡化:極簡化是指通過刪除用于幫助人類了解所發(fā)生情況的所有組件來減少代碼塊大小的過程。盡管工程師需要將想法分解為合理的變量名稱、空格和注釋,以使代碼塊易于閱讀和維護(hù),但計(jì)算機(jī)在刪除這些字符后仍然可以成功運(yùn)行代碼。
下方列出了極簡化前后的代碼塊:
極簡化之前:八行代碼
極簡化之后:縮減為一行代碼
現(xiàn)在,代碼片段已從八行減少到一行,整個(gè)文件的大小也縮小。這意味著傳輸文件所需的時(shí)間將縮短,減少了延遲并有助于更快加載內(nèi)容。
文件壓縮:若要減少通過互聯(lián)網(wǎng)傳輸數(shù)據(jù)時(shí)所需的延遲和帶寬消耗,文件壓縮是一個(gè)重要組成部分。GZip 是常用的壓縮方法,視為傳輸網(wǎng)頁時(shí)所用的一種最佳實(shí)踐。許多 CDN 提供商默認(rèn)情況下都啟用 GZip。GZip 壓縮的節(jié)省程度有多大?通常,壓縮后的文件的大小比初始文件小大約 50% 到 70%。
CDN 可以利用哪些硬件來提高速度?就CDN 硬件優(yōu)化而言,與傳統(tǒng)硬盤驅(qū)動器(HDD)相比,使用固態(tài)硬盤(SSD 具有顯著的優(yōu)勢。固態(tài)驅(qū)動器打開文件的速度比傳統(tǒng)硬盤驅(qū)動器最多快30%,而且更具彈性和可靠性。
與電唱機(jī)類似,傳統(tǒng)硬盤驅(qū)動器由旋轉(zhuǎn)的圓形金屬碟片構(gòu)成,碟片上的磁性涂層可以存儲數(shù)據(jù)。當(dāng)?shù)D(zhuǎn)時(shí),上方臂架上的讀/寫頭可以訪問信息。這是一種機(jī)械過程,會受到碟片旋轉(zhuǎn)速度的影響。隨著固態(tài)驅(qū)動器的誕生,舊式硬盤驅(qū)動器的使用已在減少,但它們目前仍在生產(chǎn),并在許多計(jì)算機(jī)系統(tǒng)中廣泛使用。
固態(tài)驅(qū)動器 (SSD) 也是一種持久存儲形式,但其功能與 USB 拇指驅(qū)動器或數(shù)碼相機(jī)等設(shè)備中常見的存儲卡更相似;沒有移動部件。如果普通硬盤正在旋轉(zhuǎn)并且系統(tǒng)受到擠壓,硬盤可能會跳過,從而導(dǎo)致讀/寫錯(cuò)誤和潛在的停機(jī)時(shí)間。SSD 的另一個(gè)重要好處是訪問碎片文件。文件碎片是文件的一部分位于磁盤上不同位置的情況,導(dǎo)致 HDD 驅(qū)動器的訪問速度變慢。由于 SSD 可以有效地訪問非連續(xù)內(nèi)存位置,因此碎片不會對性能構(gòu)成威脅。
在首批 CDN 中,數(shù)據(jù)存儲在硬盤驅(qū)動器上。現(xiàn)在的一些 CDN 服務(wù)將所有邊緣緩存放在固態(tài)驅(qū)動器上進(jìn)行。SSD 的缺點(diǎn)是成本高昂;SSD 的成本可達(dá)傳統(tǒng)介質(zhì)的 5 倍。因此,一些 CDN 服務(wù)通常會避免使用 SSD,而選用較舊的技術(shù)。
分享名稱:cdn服務(wù)器租用-CDN怎么改善加載時(shí)間?
本文地址:http://www.rwnh.cn/news47/315197.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、自適應(yīng)網(wǎng)站、全網(wǎng)營銷推廣、建站公司、ChatGPT、網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容