美團使用第二代英特爾至強可擴展處理器加速Cellar存儲性能

2020-12-17 中國經濟時報

  綜述

  網際網路推動著商業社會的快速變革,對於美團等超大型網際網路服務提供商而言,其資料庫系統需要對仍在飛速增長的海量業務數據進行快速處理。這些核心資料庫往往屬於典型的性能密集型應用,內存的容量與性能在很大程度上影響著上層業務的處理效率以及可用性。此外,龐大的部署規模也使得內存的總體擁有成本(TCO) 變得相當敏感。

  為了應對億級用戶給資料庫系統帶來的性能壓力,支撐業務創新,為用戶提供高速穩定的網際網路服務,美團將 Cellar 存儲系統伺服器中的處理器替換為第二代英特爾至強可擴展處理器,同時結合美團面向 Cellar 存儲系統進行的軟體優化,最終將資料庫性能提升 20%,幫助美團進一步優化了資料庫系統,可有效支撐未來業務的增長需求。

  挑戰:如何解決 Cellar 存儲面臨的 PAUSE 指令問題

  作為中國領先的生活服務電子商務平臺,美團服務涵蓋餐飲、外賣、打車、共享單車、酒店旅遊、電影、休閒娛樂等200 多個品類,業務量實現了快速發展。2019年,美團年度交易用戶總數達4.5 億,平臺活躍商戶總數達620 萬,用戶平均交易筆數達到 27.4 筆。近年來,美團一直使用分布式 KV 存儲系統Cellar 作為最重要的在線存儲服務之一,承載其海量的網際網路業務。

  Cellar 是一個在 Tair 基礎上研發的NoSQL 存儲,在底層支持Leverldb 、rockdb、mdb和 rdb 等引擎,各節點直接通過raft 進行複製。Cellar 支持異地容災、無損數據遷移,元信息存在單獨節點,並且通過添加observer的形式實現路由查詢能力擴展、客戶與中間節點分離。目前,Cellar 已經承載了美團在線服務每天萬億級的請求量,並保持著高達 99.999% 的服務可用性。


    圖1:美團 Cellar 存儲架構

  網際網路服務的典型特徵是流量大,美團發現,在業務高峰期的時候,Cellar 存儲系統常常會遇到異常的性能降低問題。研究之後發現,其原因在於英特爾處理器中使用的 PAUSE 指令:不同架構的英特爾至強處理器有著不同的 PAUSE 指令時長。其中,第二代英特爾至強可擴展處理器(CascadeLake 架構)的指令時長為 44 cycle,而上一代的英特爾至強可擴展處理器(Skylake 架構) PAUSE 指令時長為 144 cycle。業務應用程式設計一般基於Broadwell架構,頻繁調用該指令的應用程式運行在Skylake上時,就會出現負載相對過高的現象。

  這是因為,這些程序的內部自旋,就是通過固定次數的 PAUSE 循環實現,PAUSE 指令周期增加時,執行自旋的時間也會增加,對於系統整體的吞吐量會造成影響。如果程序中使用固定次數的PAUSE 循環來實現一段時間的延遲,以此阻塞程序執行,可能引發非預期的延遲,這突出體現在對於 Spinlock 的影響。

  Spinlock又稱自旋鎖,是為實現保護共享資源而提出的一種鎖機制。當執行spin-wait循環的時候,處理器會因為在退出循環的時候檢測到內存訪問順序衝突而導致嚴重的性能損失,而 PAUSE 指令主要用於提示處理器目前處於spin-wait中。如上所述,這些程序的內部自旋,是通過固定次數的PAUSE 循環實現,在 PAUSE 指令時長增加之後,可能會帶來執行自旋的時間延長。

  此外,普通 Spinlock 在處理器多核心的情況下,同一時間只能有一個 CPU 線程獲取變量並自旋,而緩存一致性協議為了保證數據的正確,會對所有 CPU 線程的狀態和數據進行同步、失效等操作,導致性能下降。

  除了 Spinlock 之外,PAUSE 指令還會對於內存分配帶來影響。在內存分配過程中,鎖會造成線程等待,對性能影響巨大。

  在 Cellar 的業務實踐中,美團發現,當負載較高時,與Broadwell 架構的英特爾立處理器相比,Skylake 的英特爾處理器負載高15% 左右。通過vTune 分析和源碼分析,原因隨之浮現:Cellar 服務在高負載時會大量調用Spinlock,PAUSE指令周期的增加導致了CPU負載的增高。

  雖然通過軟體優化的方式有助於解決 PAUSE 指令所帶來的性能下降問題,但是如果在新部署的存儲伺服器中直接選擇了針對此指令進行優化的新型處理器,則不僅能夠降低問題影響,還有助於充分發揮新型號處理器在性能、創新功能等方面的優勢。在此背景下,美團與英特爾密切合作,對於最新的硬體產品與技術進行測試、驗證、部署,並充分優化存儲軟體,以最大化發揮硬體性能。

  解決方案:基於第二代英特爾至強可擴展處理器的 Cellar 存儲優化

  為了在提升 Cellar 存儲系統性能的同時控制 TCO 的增長,美團與英特爾展開了深度合作,將伺服器中的處理器替換為二代英特爾至強金牌處理器5218,並在性能驗證中將Cellar 存儲系統的工作負載遷移到使用該處理器構建的平臺上。

  針對PAUSE指令對 Cellar 造成的影響,美團採用了兩種方法:在軟體層面,美團動態調整Cellar 對Spinlock 的調用次數,在應用中將循環次數降低,從而控制 PAUSE 指令執行的時長。

  此外,美團還將替換libc 的內存分配為Jemalloc,以減少鎖的使用,優化 Cellar 存儲系統實際業務。JeMalloc 是一款內存分配器,與其它內存分配器相比,它最大的優勢在於多線程情況下的高性能以及內存碎片的減少。為避免線程競爭鎖的發生,JeMalloc 使用了線程變量,內存分配將在線程自帶的內存管理器中完成,無需和其它線程進行競爭。此外,JeMalloc 中的每個線程都通過線程號的映射對應到一個數組元素中,可降低多個線程競爭一個元素的機率。由於競爭鎖發生機率的降低,PAUSE 指令時長的增長對於內存管理的影響也能得到相應的控制。因此,通過將應用中的內存分配器更改為 JeMalloc,有助於緩解 PAUSE 指令周期增加所帶來的吞吐量降低的問題。

  在硬體層面,美團將部分存儲伺服器中的處理器升級為採用了 Cascade Lake架構的二代英特爾至強可擴展處理器,二代英特爾至強可擴展處理器將PAUSE 指令時長從 144 cycle 降低為 44 cycle,從而徹底消除了PAUSE指令變化帶來的影響。

  此外,二代英特爾至強可擴展處理器還帶來了額外的性能提升。該處理器專為數據中心現代化革新而設計,能夠提高各種基礎設施、企業應用及技術計算應用的運行效率,進而改善總體擁有成本(TCO),提升用戶生產力。它擁有更高的每核性能,能夠在計算、存儲和網絡應用中,為計算密集型工作負載提供高性能和可擴展性。得益於英特爾超級通道互聯(英特爾® UPI)、英特爾Infrastructure Management 技術(英特爾IMT)、英特爾高級矢量擴展指令集512(英特爾® AVX-512)等領先功能,它可滿足嚴苛的 I/O 密集型工作負載的需求,能夠幫助企業打造出性能更強的敏捷服務和突破性功能。

  效果:Cellar 存儲系統性能提升20%

  為了驗證在處理器更換為二代英特爾至強可擴展處理器之後,Cellar 存儲系統的性能提升,美團通過測試進行了驗證(測試配置如表2所示)

  表2

  數據顯示,與基於英特爾至強E 系列處理器的 Cellar 存儲系統相比,基於二代英特爾至強可擴展處理器的 Cellar 存儲系統提升了 20% 左右。

  從成本效益來看,二代英特爾至強可擴展處理器的應用通過顯著的性能提升,節約了在存儲節點方面的投入,總體擁有成本能夠得到更好的控制,也更具面向未來工作負載的擴展性。

  合作夥伴表示:「無論是卓越的硬體特性,還是在 PAUSE 指令等方面的優化,二代英特爾至強可擴展處理器都對 Cellar 存儲系統性能的提升起到了至關重要的作用。通過雙方的密切合作,我們不僅驗證了二代英特爾至強可擴展處理器在存儲系統性能優化過程中的關鍵作用,也為之後的進一步優化奠定了堅實基礎。」


    圖3:性能優化對比

  展望:美團與英特爾加速網際網路基礎設施創新

  在發展過程中,美團正致力於去探索Cellar 等具備突破性的存儲解決方案,並實踐新的運維方式,以滿足業務的快速增長需求。美團計還將繼續攜手英特爾,充分利用軟硬體技術的最新發展成果,打造高性能資料庫解決方案,為內外部用戶提供更高效、更可靠的服務。

  除了資料庫之外,美團與英特爾還在廣泛的領域進行了合作,利用二代英特爾至強可擴展處理器等產品所帶來的革命性技術能力,構建高性能的基礎設施,在不斷增長的核心網際網路業務場景以及關鍵應用和服務中發揮越來越重要的作用,這也有助於美團為用戶提供更高效、更多元化的應用體驗。

相關焦點

  • 美團使用第二代英特爾至強可擴展處理器 加速Cellar存儲性能
    為了應對億級用戶給資料庫系統帶來的性能壓力,支撐業務創新,為用戶提供高速穩定的網際網路服務,美團將 Cellar 存儲系統伺服器中的處理器替換為第二代英特爾至強可擴展處理器,同時結合美團面向 Cellar 存儲系統進行的軟體優化,最終將資料庫性能提升 20%,幫助美團進一步優化了資料庫系統,可有效支撐未來業務的增長需求。
  • 美團使用第二代英特爾至強可擴展處理器加速 Cellar 存儲性能
    為了應對億級用戶給資料庫系統帶來的性能壓力,支撐業務創新,為用戶提供高速穩定的網際網路服務,美團將Cellar存儲系統伺服器中的處理器替換為第二代英特爾至強可擴展處理器,同時結合美團面向Cellar存儲系統進行的軟體優化,最終將資料庫性能提升20%,幫助美團進一步優化了資料庫系統,可有效支撐未來業務的增長需求。
  • 第二代英特爾至強可擴展處理器更新,強調性能和性價比優化
    近日,英特爾正式宣布至強可擴展平臺更新的消息,性能和性價比是此次更新亮點。此次發布的新款處理器主要面向雲、網絡和邊緣領域等主流場景。主流OxM廠商即日起將發售搭載這些新處理器的產品。目前,英特爾至強可擴展平臺已累計銷售超過3000萬顆晶片,部署應用非常廣泛。
  • 全新第二代英特爾至強可擴展處理器發布!1.36倍性能提升
    英特爾今天宣布英特爾至強可擴展平臺正式迎來針對性能和性價比優化的全新英特爾至強可擴展處理器。作為業界部署最廣泛的伺服器平臺,英特爾至強可擴展平臺目前已累計銷售超過3000萬顆晶片。今天所發布的新款處理器主要面向英特爾在雲、網絡和邊緣領域的主流至強可擴展處理器客戶。主流OxM廠商即日起將發售搭載這些新處理器的產品。
  • 英特爾發布全新第二代英特爾至強可擴展處理器性能提升達1.36倍
    英特爾公司副總裁兼數據平臺事業部至強與存儲事業部總經理Lisa Spelman表示:「從雲到網絡到智能邊緣,英特爾以數據為中心的平臺相比業界任何伺服器處理器平臺,所覆蓋的市場都是最廣泛的 英特爾今天正式發布全新第二代英特爾至強可擴展處理器。
  • 英特爾發布地表最強AI加速的CPU——第三代至強可擴展處理器
    2020年6月19日,英特爾發布多款數據中心級產品和方案,包括第三代至強可擴展處理器,第二代傲騰和PCIe 4.0 SSD,以及一款為AI設計的FPGA新品。第三代可擴展處理器:最懂AI的CPU今年2月,英特爾發布了幾款二代至強可擴展處理器的升級版,當時提到,這次發布在性價比上有較大提升。
  • 強化AI加速技術 英特爾發布第三代至強可擴展處理器等眾多新品
    【天極網筆記本頻道】6月19日英特爾召開數據創新峰會暨新品發布,推出最新的數據平臺產品組合,包括集成AI加速的英特爾第三代至強可擴展處理器、英特爾首個人工智慧優化FPGA Stratix 10 NX、第二代英特爾傲騰持久內存、最新英特爾 3D NAND SSD及相關軟體解決方案。
  • 傲騰持久內存,第二代;至強可擴展處理器,第三代
    2020年6月19日,英特爾發布多款數據中心級產品和方案,包括第三代至強可擴展處理器,第二代傲騰和PCIe 4.0 SSD,以及一款為AI設計的FPGA新品。第三代可擴展處理器:最懂AI的CPU今年2月,英特爾發布了幾款二代至強可擴展處理器的升級版,當時提到,這次發布在性價比上有較大提升。
  • 第二代英特爾至強可擴展處理器發布 性能提升1.36倍
    昨日,英特爾宣布推出第二代至強可擴展處理器產品組合,新款處理器主要面向英特爾在雲、網絡和邊緣領域的主流至強可擴展處理器客戶。數據顯示,全新第二代英特爾至強金牌處理器相比第一代至強金牌處理器,性能提升達1.36倍,性價比提升1.42倍。
  • 美超微採用最新第二代英特爾至強可擴展處理器來優化X11系統,將其...
    100多款新系統支持所有提供更多核心數、頻率和緩存的新型處理器,與現有系統相比,性能可提升36%,處理器成本可節省61%加州聖何塞2020年2月24日 /美通社/ -- 企業計算、存儲和網絡解決方案以及綠色計算技術領域的全球領導者美超微電腦股份有限公司
  • 英特爾發布最懂AI的CPU——第三代至強可擴展處理器
    2020年6月19日,英特爾發布多款數據中心級產品和方案,包括第三代至強可擴展處理器,第二代傲騰和PCIe 4.0 SSD,以及一款為AI設計的FPGA新品。第三代可擴展處理器:最懂AI的CPU今年2月,英特爾發布了幾款二代至強可擴展處理器的升級版,當時提到,這次發布在性價比上有較大提升。四個月之後,北京時間6月19日,英特爾全球同步發布第三代至強可擴展處理器,發布節奏明顯比前幾年要快了許多,要知道第一代至強可擴展處理器是2017年發布的。
  • AI性能Up Up!第三代英特爾至強可擴展處理器年中見分曉
    2020年1月6日,在CES 2020英特爾的「智能驅動創新」(Innovation through intelligence)為主題的新聞發布會上, 英特爾公司執行副總裁、數據平臺事業部總經理孫納頤(Navin Shenoy)宣布,2020年上半年推出的第三代英特爾至強可擴展處理器
  • 百度定製化英特爾第三代至強可擴展處理器 為新基建提供超強算力
    百度在英特爾全球發布全新第三代英特爾至強@可擴展處理器產品之日宣布採用與英特爾共同研製開發的定製化處理器(前代號Cooper Lake),支持4路伺服器的平臺架構設計,不但提升了單節點(Node)的計算性能和密度,還加入了適合深度學習的Bfloat16指令集,並且提供了更高的處理器核數及基頻
  • 第三代英特爾至強可擴展處理器來了!傲騰200系列也來了!
    2020年6月19日,北京 —— 英特爾公司今日正式發布第三代英特爾至強可擴展處理器及全新的AI軟硬體產品組合,旨在進一步助力客戶在數據中心、網絡及智能邊緣環境中加速開發和部署AI及數據分析工作負載。
  • 英特爾發布第三代至強可擴展處理器/傲騰持久內存等新品,全面強化...
    【51CTO.com原創稿件】6月19日,英特爾數據創新峰會暨新品發布會如期舉行。受新冠病毒疫情影響,本次發布會採用了線上直播的形式進行。會上,英特爾全球同步發布第三代至強可擴展處理器。通過前兩代產品的發布周期不難發現,第三代至強可擴展處理器的發布節奏比前幾代要快了許多,這不僅能夠讓用戶受益,也有助於推動行業的快速迭代。
  • 英特爾發布全新第二代英特爾至強可擴展處理器 性價比提升1.42倍
    英特爾發布全新第二代英特爾至強可擴展處理器 性價比提升1.42倍 來源:TechWeb • 2020-02-25 10:52:31
  • 英特爾發布全新第二代至強可擴展處理器,攜手浪潮加速新型應用發展
    近日,英特爾發布了提供更高性能、更好的性價比選擇的全新第二代英特爾®至強可擴展處理器,通過增加核心數量、提高緩存或提升處理器頻率等多個方面優化處理器,以便在廣泛的市場和工作負載中更好地滿足客戶對性能和價格的需求,進一步加強英特爾在數據中心領域的領導地位。
  • 英特爾發布第三代至強可擴展處理器及最新的數據中心產品組合
    在6月19日,英特爾召開數據創新峰會暨新品發布會,大會的主題與口號為「芯存高遠,智者更強」,英特爾在此次發布會中推出了最新的數據中心產品組合,對現有的產品線進行了全面升級,新品包括集成DL boost的英特爾第三代至強可擴展處理器Cooper Lake、首個人工智慧優化FPGA?Stratix?10?
  • 英特爾與騰訊發布星星海四路伺服器:搭載第三代至強可擴展處理器
    IT之家 9 月 11 日消息 根據英特爾官方的消息,在今日舉行的 2020 騰訊全球數字生態大會上,英特爾與騰訊共同宣布了一系列創新合作:雙方聯合開發並推出騰訊雲首款星星海四路伺服器,搭載第三代至強可擴展處理器。
  • 英特爾推出第二代至強可擴展處理器,平均性能提升達1.36倍
    2月24日,英特爾宣布推出新款第二代至強可擴展處理器,性能和性價比都有所提升。英特爾稱,第二代英特爾至強金牌處理器相比第一代至強金牌處理器平均性能提升達1.36倍,性價比提升1.42倍。新款處理器主要面向英特爾在雲、網絡和邊緣領域的主流至強可擴展處理器客戶。主流OxM廠商即日起將發售搭載這些新處理器的產品。英特爾稱第二代英特爾至強可擴展處理器主要針對三類較為廣泛的使用場景:為高性能使用場景提供業界領先的頻率; 為主流使用場景提供增強性能; 為入門級、邊緣、網絡和物聯網使用場景提供更高的價值和能力。