原標(biāo)題:一樣的錢,6倍的性能,就問你心不心動(dòng)
“百度BigSQL可為用戶提供高性能的即席查詢服務(wù),它需要大內(nèi)存在計(jì)算節(jié)點(diǎn)本地緩存熱數(shù)據(jù),以減少DFS I/O對(duì)查詢性能的影響。我們使用來自英特爾的傲騰持久內(nèi)存,在緩存質(zhì)量得到保證的同時(shí),極大地提升了集群的處理能力,獲得了明顯的TCO收益。”
——百度資深系統(tǒng)工程師黎世勇
在近年來全球數(shù)據(jù)規(guī)模指數(shù)級(jí)增長(zhǎng)的大背景下,如何滿足用戶對(duì)服務(wù)響應(yīng)時(shí)間的要求成為了擺在眾多企業(yè),特別是科技企業(yè)面前的嚴(yán)峻挑戰(zhàn)。別看只是響應(yīng)晚一秒鐘,但企業(yè)很有可能流失數(shù)以萬(wàn)計(jì)的客戶,因此沒有哪家企業(yè)敢對(duì)客戶體驗(yàn)掉以輕心。
這也是頂級(jí)互聯(lián)網(wǎng)企業(yè)百度面臨的苦惱。用黎世勇的話說,客戶體驗(yàn)是我們的第一KPI,響應(yīng)時(shí)間是客戶體驗(yàn)好不好最直接的體現(xiàn)之一。為此,百度這些年一直在尋找、嘗試、開發(fā)更好的技術(shù)來改善用戶體驗(yàn)。
本文要講的百度聯(lián)合英特爾進(jìn)行的一系列技術(shù)創(chuàng)新,便是其為用戶獲得更好體驗(yàn)不斷努力的一個(gè)縮影。
0 1
軟硬一起抓
Apache Spark是大規(guī)模數(shù)據(jù)處理的快速通用計(jì)算引擎,當(dāng)前應(yīng)用極其廣泛。Spark SQL模塊是Apache Spark專門為大型數(shù)據(jù)中心結(jié)構(gòu)化數(shù)據(jù)處理開發(fā)的功能模塊。百度BigSQL數(shù)據(jù)處理平臺(tái)基于Spark SQL開發(fā),在性能上做了很多優(yōu)化,開發(fā)了不少新功能。
交互式查詢能力就是BigSQL在性能優(yōu)化方面體現(xiàn)非常明顯的一個(gè)例證。關(guān)于交互式查詢的重要性,相信不用多解釋了,服務(wù)響應(yīng)快不快,跟它緊密相關(guān)。為實(shí)現(xiàn)次秒級(jí)的交互式查詢響應(yīng),百度和英特爾在軟硬兩個(gè)層面都下了不少功夫。
軟件層面,百度聯(lián)合英特爾開展了Spark平臺(tái)優(yōu)化分析包(OAP)項(xiàng)目合作。其中,OAP 能很好地利用列式數(shù)據(jù)以及選定列上的用戶定義索引,提高數(shù)據(jù)檢索效率。與此同時(shí),OAP還采用了細(xì)粒度的內(nèi)存數(shù)據(jù)緩存策略,以此來消除磁盤和網(wǎng)絡(luò)中的 I/O 瓶頸,將性能最大化。
硬件層面,百度與英特爾合作,利用英特爾傲騰持久內(nèi)存替代部分DRAM,部署更具成本效益的解決方案。
百度內(nèi)部測(cè)試顯示,與使用傳統(tǒng)純內(nèi)存的解決方案相比,使用傲騰持久內(nèi)存可有效提高OAP的緩存性能及成本效益,大幅提升業(yè)務(wù)成效,例如幫助百度即席查詢服務(wù)圖靈減少工作負(fù)載、降低平均查詢延時(shí)等。
具體如何實(shí)現(xiàn)的呢??jī)刹阶摺?/span>
0 2
把常用的數(shù)據(jù)放在更快的存儲(chǔ)里
OAP的核心是使用索引和緩存技術(shù)來加快交互式查詢響應(yīng)的速度。
在此基礎(chǔ)之上,OAP還借助緩存來優(yōu)化索引和數(shù)據(jù)訪問進(jìn)程。通過將索引和數(shù)據(jù)緩存在內(nèi)存中,來提升索引加載和數(shù)據(jù)掃描速度,縮短從分布式文件系統(tǒng)讀取時(shí)磁盤和網(wǎng)絡(luò)的I/O時(shí)間。此外,通過將索引和數(shù)據(jù)單獨(dú)緩存,其緩存清除和內(nèi)存空間管理實(shí)現(xiàn)了彼此獨(dú)立。
由于采用列式緩存,OAP 只需緩存查詢所需的列?;谧罱钌偈褂茫↙RU)策略,當(dāng)緩存達(dá)到最大容量時(shí),那些最近最少使用的數(shù)據(jù)項(xiàng)將被淘汰,為緩存最新數(shù)據(jù)釋放空間。依照該策略,BigSQL啟用了一個(gè)高級(jí)緩存管理器,可以主動(dòng)填充熱點(diǎn)列,并清除緩存中不再需要的列。
0 3
讓更快的存儲(chǔ)空間再大一點(diǎn)
顯而易見,OAP的本質(zhì)是將熱數(shù)據(jù)放在更快的內(nèi)存中,從而起到加速的目的。但由此也帶來了新的問題:一、內(nèi)存是不可能無(wú)限擴(kuò)展的,二、超過一定內(nèi)存容量后,成本是呈指數(shù)級(jí)上漲的。
這也是硬件層面采用傲騰持久內(nèi)存的根本出發(fā)點(diǎn)。眾所周知,傲騰持久內(nèi)存是一種將高容量、經(jīng)濟(jì)實(shí)用性和數(shù)據(jù)持久性相結(jié)合的突破性技術(shù),其擁有兩大特點(diǎn):一、大容量和更低的成本,二、適合順序讀。
進(jìn)一步展開,傲騰持久內(nèi)存擁有兩種工作模式:內(nèi)存模式和應(yīng)用直接訪問模式。在“內(nèi)存模式”下,應(yīng)用程序能利用傲騰持久內(nèi)存作為擴(kuò)展的易失性系統(tǒng)內(nèi)存,無(wú)需重新編寫軟件,而DRAM將起到緩存的作用。在“應(yīng)用直接訪問模式”下,經(jīng)過專門改進(jìn)的應(yīng)用程序可獲得更大的持久性容量。
鑒于OAP緩存具有索引和輸入數(shù)據(jù)的特定目的,因此OAP采用了“應(yīng)用直接訪問模式”。
為更好地利用傲騰持久內(nèi)存代替 DRAM,英特爾還對(duì)OAP進(jìn)行了擴(kuò)展,加入內(nèi)存管理器插件,并采用支持傲騰持久內(nèi)存的內(nèi)存管理器。這樣一來,用戶可以在DRAM和傲騰持久內(nèi)存間自由切換,甚至兩者兼用,例如使用 DRAM 緩存索引,而使用傲騰持久內(nèi)存緩存數(shù)據(jù)。
除此之外,為確保傲騰持久內(nèi)存與百度獨(dú)特的OS環(huán)境無(wú)縫集成,百度還與英特爾在硬件、操作系統(tǒng)和庫(kù)等領(lǐng)域進(jìn)行了一系列合作優(yōu)化。
0 4
6倍性能提升
為驗(yàn)證OAP項(xiàng)目及傲騰持久內(nèi)存的性能表現(xiàn),百度分兩步進(jìn)行了多次評(píng)估和內(nèi)部測(cè)試:第一步是決策支持基準(zhǔn)測(cè)試,第二步真實(shí)查詢測(cè)試。
在決策支持基準(zhǔn)測(cè)試中,首先將數(shù)據(jù)集大小控制為1TB,并使用相同容量的DRAM和傲騰持久內(nèi)存。 測(cè)試結(jié)果表明,兩者都能容納所有的緩存數(shù)據(jù),傲騰持久內(nèi)存的性能略微低于 DRAM(11.7%),但成本卻明顯更低。
當(dāng)數(shù)據(jù)集達(dá)到 3TB,且使用相同成本的DRAM和傲騰持久內(nèi)存時(shí),前者的容量已不足以緩存所有數(shù)據(jù)。相比之下,傲騰持久內(nèi)存不僅能緩存所有的數(shù)據(jù),性能也超出DRAM 高達(dá) 6 倍。
此時(shí)的 DRAM 性能較差是因?yàn)椋寒?dāng)數(shù)據(jù)規(guī)模大大超過緩存容量時(shí),DRAM 需要頻繁地從后端存儲(chǔ)讀取數(shù)據(jù),由此延長(zhǎng)了響應(yīng)時(shí)間。決策支持基準(zhǔn)測(cè)試清楚的表明,在成本相同的情況下,傲騰持久內(nèi)存可提供比DRAM更高的容量和更出色的性能。
測(cè)試的第二階段使用百度線上業(yè)務(wù)的真實(shí)查詢數(shù)據(jù),依然基于以上兩種情況,但方法略有不同。在第一種情況下,DRAM和傲騰持久內(nèi)存被設(shè)置為緩存50%的常用數(shù)據(jù)列, 此時(shí)PMem的緩存速度僅比DRAM低約12%,但由于成本優(yōu)勢(shì)更為顯著,因此整體性價(jià)比更高。
在第二種情況下(即DRAM和傲騰持久內(nèi)存成本相同),只有傲騰持久內(nèi)存擁有足夠容量來緩存所有熱點(diǎn)數(shù)據(jù),且性能較DRAM高出22%,同時(shí)避免了30%不要的底層系統(tǒng)I/O請(qǐng)求。
數(shù)據(jù)不會(huì)說謊,在百度BigSQL 中用傲騰持久內(nèi)存取代DRAM顯然是更具成本效益的緩存解決方案。目前,百度已在BigSQL中成功部署了傲騰持久內(nèi)存,并以此為基礎(chǔ)優(yōu)化了百度即席查詢服務(wù)圖靈。在傲騰持久內(nèi)存的加持下,圖靈集群的工作負(fù)載降低了30%,平均查詢延時(shí)降低了20%,每個(gè)傲騰持久內(nèi)存服務(wù)器實(shí)例Spark/OAP的性能提高了50%,而成本僅增加了20%。
0 5
傲騰,還有更多用武之地
除了為Spark SQL輸入數(shù)據(jù)提供緩存加速外,傲騰持久內(nèi)存高容量和高帶寬的優(yōu)勢(shì)還能在基于Spark的機(jī)器學(xué)習(xí)和深度學(xué)習(xí)場(chǎng)景中發(fā)揮更大作用,因?yàn)檫@些場(chǎng)景要求在規(guī)模龐大的數(shù)據(jù)集上反復(fù)進(jìn)行多次計(jì)算。另外,Spark shuffle可以通過優(yōu)化,使用RDMA技術(shù)訪問遠(yuǎn)程節(jié)點(diǎn)上的傲騰持久內(nèi)存并將其用作隨機(jī)存儲(chǔ),進(jìn)一步減少隨機(jī)延遲并提高性能。
未來,百度也將與英特爾攜手為Spark進(jìn)行一系列更深度的優(yōu)化。
事實(shí)上,不僅是Spark,包括Redis、Oracle、Aerospike等或開源、或商業(yè)軟件通過使用傲騰持久內(nèi)存都有不同程度的性能提升、成本下降,無(wú)數(shù)的客戶已經(jīng)從中受益。
總結(jié)全文,數(shù)字世界正在來臨,數(shù)據(jù)爆炸式增長(zhǎng)給企業(yè)帶來了新的挑戰(zhàn),當(dāng)下企業(yè)不僅要有能力處理大量增長(zhǎng)的數(shù)據(jù),而且要更快速的處理這些數(shù)據(jù)。這是傲騰的價(jià)值所在,提供更快速度的同時(shí),還讓你負(fù)擔(dān)得起。
- 世間將再無(wú)松下電視:松下官宣解散家電子公司并徹底放棄電視機(jī)業(yè)務(wù)
- 雅迪集團(tuán)與南都電源簽署協(xié)議:攜手共繪固態(tài)電池未來藍(lán)圖
- 美媒聚焦比亞迪“副業(yè)”:電子代工助力蘋果,下個(gè)大計(jì)劃瞄準(zhǔn)AI機(jī)器人
- 微信零錢通新政策:銀行卡轉(zhuǎn)入資金提現(xiàn)免手續(xù)費(fèi)引熱議
- 消息稱塔塔集團(tuán)將收購(gòu)和碩印度iPhone代工廠60%股份 并接管日常運(yùn)營(yíng)
- 蘋果揭秘自研芯片成功之道:領(lǐng)先技術(shù)與深度整合是關(guān)鍵
- 英偉達(dá)新一代Blackwell GPU面臨過熱挑戰(zhàn),交付延期引發(fā)市場(chǎng)關(guān)注
- 馬斯克能否成為 AI 部部長(zhǎng)?硅谷與白宮的聯(lián)系日益緊密
- 余承東:Mate70將在26號(hào)發(fā)布,意外泄露引發(fā)關(guān)注
- 無(wú)人機(jī)“黑科技”亮相航展:全球首臺(tái)低空重力測(cè)量系統(tǒng)引關(guān)注
免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁(yè)或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(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)鏈接。