突破內(nèi)存墻能帶來什么?看火山引擎智能推薦服務(wù)節(jié)支增效實(shí)戰(zhàn)

千行百業(yè)的數(shù)字化、智能化轉(zhuǎn)型正如火如荼,IT基礎(chǔ)設(shè)施資源的供求矛盾也日益突出,這尤其體現(xiàn)在AI和大數(shù)據(jù)的應(yīng)用上。

AI應(yīng)用為例:有統(tǒng)計(jì)表明,模型訓(xùn)練所需的算力平均100天就會(huì)翻番。算力需求的幾何級數(shù)增長雖然看起來很有挑戰(zhàn)性,但一直處于高速發(fā)展?fàn)顟B(tài)的各類芯片,或者說算力相關(guān)技術(shù)還能勉強(qiáng)跟上節(jié)奏。IT資源不足的真正麻煩,其實(shí)更多發(fā)生在內(nèi)存和存儲(chǔ)環(huán)節(jié),也就是被業(yè)界稱為“內(nèi)存墻”的問題日漸嚴(yán)重。

“內(nèi)存墻”,給大數(shù)據(jù)與AI“添堵”

所謂“內(nèi)存墻”,原先主要是指在性能層面,內(nèi)存與算力差距漸大(如帶寬、讀寫速度等)造成的協(xié)作壁壘或鴻溝,而今也包含內(nèi)存容量擴(kuò)展跟不上熱數(shù)據(jù)存儲(chǔ)需求所造成的阻礙。

后者產(chǎn)生的背景,是用戶在持續(xù)提升算力單元(如CPU)的性能后,通常希望將更大體量的熱數(shù)據(jù)存放在距算力更近的地方——充分利用內(nèi)存距算力更近、性能相對其他存儲(chǔ)介質(zhì)和產(chǎn)品更高的優(yōu)勢,高速地為算力單元“投喂”其需要處理的數(shù)據(jù),進(jìn)而充分發(fā)揮算力提升所帶來的效益。

但目前主流的DRAM內(nèi)存不僅容量有限,而且成本高昂,在面對數(shù)百GB甚至是以TB計(jì)的熱數(shù)據(jù)承載需求時(shí),會(huì)讓大多數(shù)企業(yè)望而卻步,因此不可避免地在容量層面形成“內(nèi)存墻”問題。

難道就沒有一種既能保證性能又具備性價(jià)比優(yōu)勢的理想內(nèi)存,來幫助企業(yè)破解容量“內(nèi)存墻”問題嗎?答案是否定的。其實(shí),已有眾多企業(yè)開始嘗試突圍,比如火山引擎就在其導(dǎo)入創(chuàng)新的內(nèi)存-存儲(chǔ)架構(gòu)后,緩解或突破了“內(nèi)存墻”,顯著提升IT系統(tǒng)和應(yīng)用的性能,并兼收大幅節(jié)支的功效。

另辟蹊徑,實(shí)現(xiàn)內(nèi)存-存儲(chǔ)架構(gòu)蛻變

火山引擎依托字節(jié)跳動(dòng)高效的大規(guī)模機(jī)器學(xué)習(xí)和個(gè)性化推薦技術(shù),推出頗具競爭力的智能推薦服務(wù)?;鹕揭婊诋悩?gòu)存儲(chǔ)設(shè)備構(gòu)建計(jì)算與存儲(chǔ)分離的推薦系統(tǒng)架構(gòu),其中的存儲(chǔ)型服務(wù)可為數(shù)百億規(guī)模的數(shù)據(jù)特征,以及千億規(guī)模的排序模型參數(shù)提供存儲(chǔ)和實(shí)時(shí)更新能力。

計(jì)算與存儲(chǔ)分離的推薦系統(tǒng)架構(gòu)

隨著業(yè)務(wù)的不斷擴(kuò)展,火山引擎這一推薦系統(tǒng)的數(shù)據(jù)存儲(chǔ)和處理需求也與日俱增,加之互聯(lián)網(wǎng)用戶對時(shí)延和內(nèi)容推薦相關(guān)度的要求日趨嚴(yán)苛,火山引擎開始將 IndexService 應(yīng)用于其推薦業(yè)務(wù)中,以提供高級語法樹 + 復(fù)雜歸并樹 + 倒排索引功能,并實(shí)現(xiàn)KV 查詢能力。

然而,這些舉措帶來對數(shù)據(jù)的訪問需求,又進(jìn)一步提升對 IndexService 的性能要求,也對存儲(chǔ)服務(wù)器的吞吐量、響應(yīng)速度、穩(wěn)定性和意外中斷后的恢復(fù)能力都提出更高的要求。要滿足這些要求,就必須采用內(nèi)存來承載其內(nèi)容信息數(shù)據(jù),并且還要隨相關(guān)數(shù)據(jù)的大幅擴(kuò)展,同步擴(kuò)充內(nèi)存并將更多數(shù)據(jù)放入其中來強(qiáng)化時(shí)延和吞吐上的性能優(yōu)勢。

火山引擎就這樣遭遇了“內(nèi)存墻”的挑戰(zhàn)。因?yàn)槿绻麅?nèi)存擴(kuò)充使用的是DRAM,那么就會(huì)受其規(guī)格所限,能夠擴(kuò)展的內(nèi)存容量始終有限,所以不得不增設(shè)更多服務(wù)器來滿足存儲(chǔ)量需求,而這又會(huì)造成服務(wù)器處于CPU 利用不充分的狀態(tài)。此外,DRAM 內(nèi)存高昂的價(jià)格以及更多機(jī)架位占用會(huì)大幅推高成本。

最終,火山引擎還是找到了更好的“破墻”利器——它擁抱了內(nèi)存-存儲(chǔ)架構(gòu)領(lǐng)域的重大創(chuàng)新,引入英特爾? 傲騰? 持久內(nèi)存,并將之與英特爾? 至強(qiáng)? 可擴(kuò)展處理器雙劍合璧,對IndexService存儲(chǔ)架構(gòu)進(jìn)行了深層次優(yōu)化。

業(yè)界悉知,英特爾? 傲騰? 持久內(nèi)存就是為顛覆傳統(tǒng)的內(nèi)存-存儲(chǔ)架構(gòu)而生,不僅具備接近 DRAM 內(nèi)存的性能,而且相對于 DRAM 內(nèi)存,擁有明顯的大容量、更優(yōu)的單位容量成本優(yōu)勢,還提供易于使用的內(nèi)存模式及可保障數(shù)據(jù)非易失的 App Direct 模式,并能根據(jù)不同應(yīng)用場景靈活配置。

傲騰? 持久內(nèi)存在存儲(chǔ)層級中的位置及作用

火山引擎充分利用了傲騰? 持久內(nèi)存的上述綜合優(yōu)勢,與英特爾攜手推出存儲(chǔ)架構(gòu)優(yōu)化方案,進(jìn)而在突破原有存儲(chǔ)介質(zhì)和架構(gòu)的局限性,滿足容量和性能要求的同時(shí),還兼收了成本上的收益。

落地實(shí)踐步步為營,實(shí)現(xiàn)性能與成本雙豐收

火山引擎的具體實(shí)戰(zhàn)是如何推進(jìn)的呢?對于其他面臨類似問題的用戶又有什么啟發(fā)呢?讓我們來看看它的實(shí)操步驟吧:

高性能、低時(shí)延是存儲(chǔ)升級的頭等大事。為滿足推薦系統(tǒng) IndexService支持大規(guī)模訪問所需的存儲(chǔ)容量,如其承載的某項(xiàng)服務(wù)在晚高峰時(shí)期的總 TPS 可達(dá)到讀 7000 萬、寫 3000 萬,并提升其數(shù)據(jù)訪問和處理能力,火山引擎在使用英特爾? 傲騰? 持久內(nèi)存時(shí)將其配置為App Direct模式,實(shí)現(xiàn)應(yīng)用程序從用戶空間直接訪問持久內(nèi)存上的數(shù)據(jù),擺脫額外開銷,很好地滿足用戶對數(shù)據(jù)訪問速度的高要求。此外,英特爾? 傲騰? 持久內(nèi)存在App Direct模式下所具備的數(shù)據(jù)持久性,也進(jìn)一步幫助其推薦系統(tǒng)提升可靠性和安全性。

大容量、低成本促進(jìn)增效節(jié)支。傲騰? 持久內(nèi)存容量比DRAM更大(目前提供128/256/512GB三種容量規(guī)格),且配置靈活,單位容量的成本也更低,可幫助火山引擎實(shí)現(xiàn)存儲(chǔ)高密度和低成本的雙重收益。更值一提的是,使用 DRAM 內(nèi)存 + 持久內(nèi)存方式,還使其單機(jī)并發(fā)業(yè)務(wù)從一個(gè)提升到兩個(gè),改善了CPU利用率,釋放了服務(wù)器的潛能。

深度優(yōu)化,挖掘持久內(nèi)存潛力。針對IndexService 業(yè)務(wù)底層存儲(chǔ)是基于 RocksDB PlainTable,數(shù)據(jù)在內(nèi)存文件系統(tǒng)或共享內(nèi)存/dev/shm 中以 SST (Sorted String Table) 文件存儲(chǔ),以及SST又分為多層、RocksDB 中 L0 和 L1 是性能的關(guān)鍵等狀態(tài),火山引擎與英特爾攜手,針對分層混合介質(zhì)存儲(chǔ)進(jìn)行深入優(yōu)化,降低了L0層,讓DRAM和傲騰? 持久內(nèi)存能夠發(fā)揮各自優(yōu)勢。在此基礎(chǔ)上,還通過優(yōu)化 RocksDB PlainTable的二分結(jié)構(gòu)和Bloom Filter參數(shù),降低IO訪問次數(shù);通過優(yōu)化LSM樹結(jié)構(gòu),提高了數(shù)據(jù)吞吐量,使其更加貼合推薦業(yè)務(wù)場景。

分層混合介質(zhì)存儲(chǔ)示意圖

實(shí)踐是檢驗(yàn)方案成效的金標(biāo)準(zhǔn)。為了測試引入英特爾? 傲騰? 持久內(nèi)存優(yōu)化后其推薦系統(tǒng)異構(gòu)存儲(chǔ)的性能表現(xiàn),火山引擎攜手英特爾,使用真實(shí)線上請求數(shù)據(jù),進(jìn)行了一系列模擬測試。測試顯示,無論系統(tǒng)時(shí)延、吞吐,還是TPS/$ 和存儲(chǔ)密度等性能都獲得顯著提升,為以采用傲騰? 持久內(nèi)存的服務(wù)器替代配備純DRAM內(nèi)存的服務(wù)器樹立了典范。

此外,經(jīng)火山引擎對優(yōu)化后存儲(chǔ)系統(tǒng)的業(yè)務(wù)線實(shí)測表明,在達(dá)到相同TPS性能指標(biāo)的情況下,采用傲騰? 持久內(nèi)存可以讓服務(wù)器總成本降低16%,即在成本不變的情況下性能提升20%;存儲(chǔ)密度也從原硬件架構(gòu)最大支持1 TB存儲(chǔ),提升到最大可支持4.5 TB。而且,分層存儲(chǔ)架構(gòu)也為后續(xù)加入NVMe、SSD、HDD、磁帶等層級,面對存儲(chǔ)密度要求較高的用戶提供更多“套餐”,從而為釋放處理器和持久內(nèi)存的潛能拓展了空間。

總的來說,火山引擎用實(shí)踐中真實(shí)的數(shù)據(jù)證明引入傲騰? 持久內(nèi)存,優(yōu)化其異構(gòu)存儲(chǔ)架構(gòu),并搭配至強(qiáng)? 可擴(kuò)展處理器,不僅能大幅提升其IndexService 推薦系統(tǒng)的存儲(chǔ)性能,還實(shí)現(xiàn)了可觀的投資收益。

看到這里,你是不是也有一種想把傲騰? 持久內(nèi)存用作攻城槌,去懟內(nèi)存墻的沖動(dòng)了?莫急,你還是要先分析一下自己面對的內(nèi)存墻具體是出現(xiàn)在什么樣的應(yīng)用場景里。因?yàn)槟壳癆I領(lǐng)域里很多細(xì)分應(yīng)用都或多或少有 “內(nèi)存墻”的困擾,而且現(xiàn)在也并不存在“一招鮮吃遍天”的完美方案?;诎硫v? 持久內(nèi)存+至強(qiáng)? 可擴(kuò)展處理器的方案,目前還是更適用于決策或推薦類的AI應(yīng)用,且主要是推理。

或許在不久的將來,隨著英特爾的異構(gòu)架構(gòu),即XPU走向成熟和完善,再加上英特爾如能打通異構(gòu)芯片對于主內(nèi)存的調(diào)配和利用通路的話,那么更具有普遍適用價(jià)值的突破“內(nèi)存墻”方案,就有望出現(xiàn)了。相信屆時(shí)傲騰持久內(nèi)存如能進(jìn)一步優(yōu)化其性能,并持續(xù)突破其容量上限(下一代產(chǎn)品單條容量已有望達(dá)到1TB),它仍將是這些破墻方案的C位組件。

免責(zé)聲明:此文內(nèi)容為第三方自媒體作者發(fā)布的觀察或評論性文章,所有文字和圖片版權(quán)歸作者所有,且僅代表作者個(gè)人觀點(diǎn),與極客網(wǎng)無關(guān)。文章僅供讀者參考,并請自行核實(shí)相關(guān)內(nèi)容。投訴郵箱:editor@fromgeek.com。

極客網(wǎng)企業(yè)會(huì)員

免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請進(jìn)一步核實(shí),并對任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。

2022-07-20
突破內(nèi)存墻能帶來什么?看火山引擎智能推薦服務(wù)節(jié)支增效實(shí)戰(zhàn)
針對IndexService業(yè)務(wù)底層存儲(chǔ)是基于RocksDBPlainTable,數(shù)據(jù)在內(nèi)存文件系統(tǒng)或共享內(nèi)存/dev/shm中以SST(SortedStringTable)文件存儲(chǔ)

長按掃碼 閱讀全文