Home 技術文章 爲什麼網路容量不夠:高速暫存策略以實現更好的流傳輸
Applications

爲什麼網路容量不夠:高速暫存策略以實現更好的流傳輸

About The Author

Outline

爲了跟上不斷增長的媒體內容量, Verizon Media (現爲Edgio Media)平臺 已投資擴大我們的全球暫存足跡。 僅在2019年,我們就增加了超過25 Tbps的容量,7個全球POPS以及近900個最後一英里連接。 儘管原始容量在提高性能方面很有效,但它也不足以滿足全球對流媒體內容不斷增長的需求。

爲了最大程度地提高網路容量的可用性,我們在技術,流程和工具方面進行了同等的投資,以控制營運和基礎設施成本。 我們的研究團隊不斷推進暫存技術的邊界,應用和優化流程,使我們的網路營運商能夠對內容暫存的方式,時間和位置進行精細控制。

現代暫存策略

任何暫存策略的目標都是將最受歡迎的內容保留在暫存中,同時快速高效地刪除不太受歡迎的內容。 多年來,研究人員和軟體開發人員設計了無數的策略,旨在解決暫存挑戰。 這些範圍從相對簡單到極爲複雜。 一些較受歡迎的策略包括:

  • 最近最少使用(LRU)
  • 最少使用(LFU)
  • 先進先出(FIFO)

如果有單一的快取策略來管理所有情況,這會很方便。 但是,這種解決方案還有待開發,特定策略的有效性可能會因伺服器和磁碟大小,流量模式和其他因素而有很大差異。 根據廣泛的測試,我們發現LRU在命中率和磁碟I/O之間提供了最佳的折衷方案,比FIFO少60%的寫入,同時保持高命中率。 此外,對於CDN中使用的磁碟大小,LRU的性能與更復雜的策略(如S4LRU (四段分割LRU))相同。 我們去年在智利瓦拉斯港舉行的被動和主動測量會議(PAM)上發佈的這篇論文更多詳情。

使用混合LRU發展超速暫存策略

儘管LRU在我們的環境中工作得非常好,但我們始終在尋找推動創新和提高客戶績效的方法。 這使得我們最近在平臺上新增了一項稱爲Hybrid LRU的新功能。 它被稱爲混合,因爲它在LRU上添加了一層抽象層。 如果我們不使用混合功能,系統將繼續正常執行,因此很容易理解,啟動或停用。

我們使用混合方法所做的就是調整LRU系統,使我們能夠更好地控制特定內容。 通過控制,我們意味着能夠根據預定義的設定顯式存儲某些內容,持續時間更長或更短。

這一點非常重要,因爲影片流領域發生了變化,特別是直播流媒體的快速增長。 僅我們的網路就舉辦了數十萬場直播活動,其中許多活動交付給數百萬同時觀看的觀衆。 儘管此類活動的普及程度很高,但一旦直播活動流完成,就不太可能以任何較大的數量重新流媒體。 使用Hybrid LRU,我們可以指定較短的暫存週期,爲其他媒體和內容釋放寶貴的暫存資源。

我們正在嘗試鎖定某些內容,並盡力保證其將保留在我們的暫存中。 這對於保質期有限的實時影片流尤其有用,但在實時事件發生後幾個小時內仍有高需求,這將成爲按需影片內容的正常片段。 此功能也可用於內容提供商明確希望在特定時間段內鎖定某些內容,以便不會擊中其原始伺服器的情況。

混合LRU還允許我們在較長的時間內存儲某些內容。 例如,如果源站位於世界的遠程位置,這將非常有用,因爲當CDN在其暫存中沒有請求內容時,可能導致QoE質量較差 。 在這種情況下,新的客戶端請求會觸發源伺服器需要填充的暫存丟失,從而可能導致重新緩衝。 延遲此內容會使暫存中的時間更長,並減少此類源填充的數量。

混合LRU使用參數

混合LRU由兩個可調參數組成,使我們能夠延遲或加快從暫存中刪除或刪除特定內容的速度:

  • 賬齡率
  • 生存時間(TTL)
老齡化率定義了驅逐分數隨時間的增加率。 這是一種縮放功能,操作員可以使用該功能來使某個內容的老化速度更快或更慢。 老化率的預設值爲10,因此,例如,將此值更改爲200將使影片文件的老化速度加快20倍(200/10=20)。 該值也可以更改爲5,以預設速度的一半設定內容的時間。

生存時間(TTL)參數可將項目的使用期限減少指定的數量。 它的工作原理是在該變量設定的持續時間內爲項目提供極低的驅逐分數。 這會強制項目自上次訪問以來在暫存中保留指定的持續時間。 預設值爲0秒,這意味着沒有特殊的首選項。

下圖顯示了這些可調參數如何調整內容在暫存中的保留時間。 將這些參數視爲旋鈕或刻度盤,可以精確調整以滿足內容需求,這很有用。 這些圖表顯示了在等待訪問時,對象在伺服器暫存上的老化時間。

首先,讓我們來看看老齡率。 傳統LRU對象隨時間的推移以相同的速率老化。 但隨着我們調高老化率,商品的老化時間會更快。 同樣,當我們將錶盤朝相反方向轉動時,項目的壽命比LRU慢。 轉動刻度盤足夠大,慢速的項目永遠不會超過圖一所示的“驅逐閾值”。 藉助此控件,我們可以更快地刪除項目以釋放空間,或者根據需要延長磁碟上的項目以減少源站拉動或其他原因。

與老化率不同,TTL允許我們更改特定項目的暫存能力。 對於使用TTL功能設定的持續時間,項目在磁碟上時不會過期,因此不太可能(甚至很不可能)被驅逐。 TTL過期後,項目可以以傳統LRU的方式開始老化,也可以快速老化或緩慢老化(取決於操作員如何配置)。 在下圖中,延遲較慢的TTL將一個項目保留在磁碟上,直至其未超過暫存驅逐閾值。 相反,TTL確保了實時影片流至少在事件的持續時間內被暫存,但之後使用快速老化從磁碟中快速刪除。

在大多數情況下,更改老化率值是調整從暫存中刪除內容的時間的首選方法,因爲它可以很容易地適應磁碟上的流量量。 另一方面,TTL更具攻擊性,可以有效地鎖定磁碟的一部分,直到內容發佈爲止。 但是,正如這些示例所示,這兩種控件可以一起使用,以可靠地實現所需效果。

前瞻性暫存策略

廣泛的暫存策略(如LRU)就像一個大錘,無論類型或文件大小如何,都能平等對待所有內容。 如果某個文件在一定時間內未被命中,它將從暫存中刪除。 同時,其他文件(如一次性的直播影片流/事件),不可能在未來獲得點擊,留在暫存中,佔用空間。 混合LRU增加了一種改進級別,旨在減少不必要的高速暫存佔用空間並提高高速暫存命中率。 就像使用小錘子或螺絲刀更準確地控制哪些文件應保留在暫存中,哪些文件應刪除。

目前,Hybrid LRU處於實驗階段,需要操作員調整內容的驅逐時間範圍。 展望未來,我們正在研究是否可以利用請求配置文件和其他因素自動進行調整。 例如,實時事件有許多不同的配置文件,其中成千上萬的請求同時進入同一文件段,然後是影片點播文件。 我們還在考慮根據文件大小進行調整–您是希望將大文件保留在磁碟上以最小化網路流量,還是保留較小的文件以優化高速暫存命中率?

儘管我們對高速暫存系統和策略的性能和成熟度充滿信心,但優化有限資源的需要仍然是一項重要的持續努力。