【快手推薦系統(tǒng)采用計算和存儲分離的架構】

2018年到2019年上半年,快手推薦架構團隊的主要工作集中在利用異構混合計算的方式,提升推薦系統(tǒng)中模型預估和召回檢索等計算密集型業(yè)務的性能。通過利用異構計算的改造,產(chǎn)生了數(shù)倍的性能提升,鼓舞了快手推薦架構團隊向異構系統(tǒng)設計中更難的存儲問題進發(fā)。

一直以來,快手推薦團隊致力于推薦系統(tǒng)架構調(diào)整,力求在日益增長的用戶量沖擊下,使推薦系統(tǒng)高可用的前提下,實時、高效、精準地向用戶推薦優(yōu)質內(nèi)容。

新機遇:軟硬結合極致優(yōu)化,探索異構存儲

持久內(nèi)存是介于DRAM和SSD間的新存儲層級,不僅能提供接近DRAM的延遲,同時還提供持久化和更大容量的存儲空間,這為推薦系統(tǒng)中不同場景的可行性分析和架構設計提供了思路。

相比于傳統(tǒng)的內(nèi)存加硬盤的兩級存儲,新存儲設備的推出,現(xiàn)代服務器可以利用的存儲層級越來越多,利用多層級存儲的軟件系統(tǒng)設計也變得越來越復雜。每種存儲設備有不同的性能特性和容量大小限制,越快的設備的單位容量成本越高。例如使用內(nèi)存插槽的英特爾? 傲騰? 數(shù)據(jù)中心級持久內(nèi)存,依據(jù)讀寫粒度的不同,讀寫帶寬雖小于傳統(tǒng)內(nèi)存,但寫入數(shù)據(jù)具有持久性,且容量遠大于傳統(tǒng)內(nèi)存。如何結合不同層級的存儲設計在大規(guī)模推薦場景下性價比最優(yōu)的存儲系統(tǒng)成為一個巨大機遇和挑戰(zhàn)。

軟硬結合:快手推薦系統(tǒng)國內(nèi)率先基于持久內(nèi)存應用異構存儲
【新一代服務器的存儲層級結構】

快手聯(lián)合英特爾,國內(nèi)業(yè)界率先落地采用英特爾? 傲騰 數(shù)據(jù)中心級持久內(nèi)存的異構存儲到推薦系統(tǒng)

基于多層級異構存儲設備,快手推薦團隊聯(lián)合系統(tǒng)運營部硬件選型研發(fā)團隊針對推薦系統(tǒng)中的不同場景進行了可行性分析和架構設計的調(diào)研。針對持久內(nèi)存的特性,對分布式索引和參數(shù)服務器中的KV存儲進行了重新設計。

軟硬結合:快手推薦系統(tǒng)國內(nèi)率先基于持久內(nèi)存應用異構存儲
基于持久性內(nèi)存的KV系統(tǒng)設計示意圖,注:AEP指代英特爾? 傲騰? 數(shù)據(jù)中心級持久內(nèi)存

該設計主要通過為KV存儲增加MemPool組件,針對不同訪問類型來決定系統(tǒng)是訪問DRAM緩存,還是直接讀取持久內(nèi)存。比如說,在推薦模型預估的參數(shù)服務器這個場景中,由于模型中神經(jīng)網(wǎng)絡大小與Embedding Table相比很小,所以神經(jīng)網(wǎng)絡也會被MemPool直接分配進入DRAM來提高預估的性能。

除此之外,推薦團隊還對KV系統(tǒng)進行了調(diào)優(yōu):

·       對于數(shù)據(jù)讀取場景采用NUMA節(jié)點綁定的方式使得持久內(nèi)存訪問不跨NUMA節(jié)點,從而獲得更好的讀寫性能;

·       采用ZeroCopy技術對內(nèi)存和持久內(nèi)存進行訪問;

·       使用無鎖技術,減少臨界區(qū)中對持久內(nèi)存的訪問來提高性能。

經(jīng)過上述的技術改進,我們將基于持久內(nèi)存的索引系統(tǒng)用真實的線上請求數(shù)據(jù)進行模擬壓測。測試結果如下:

軟硬結合:快手推薦系統(tǒng)國內(nèi)率先基于持久內(nèi)存應用異構存儲
基于持久性內(nèi)存索引系統(tǒng)的壓力測試結果

基于異構存儲的索引系統(tǒng)幾乎達到純DRAM的索引系統(tǒng)相同的性能指標,但總體擁有成本降低30%。同時異構存儲的索引系統(tǒng)能夠提供分鐘級別的故障恢復速度,比之前小時級別的恢復提升了百倍恢復速度。英特爾專家介紹,快手是國內(nèi)率先在推薦系統(tǒng)領域中引入并使用基于持久內(nèi)存的異構存儲的互聯(lián)網(wǎng)公司,這種創(chuàng)新實踐的技術能力讓我們側目。

分享到

zhupb

相關推薦