2019年8月,AMD創新性地將7nm工藝與最高64核心的第二代EPYC產品帶入了企業級x86服務器市場。一年時間過去,對于AMD來說,第二代EPYC很好地完成了打開市場的任務。
但僅僅是打開市場卻并非第二代EPYC的全部使命。
一年時間,AMD股價從30.45美元增長至85.55美元,漲幅180.95%
回望一年前的第二代AMD EPYC發布會,所有受邀發言客戶均為頂級互聯網公司和其他擁有超大規模數據中心的大型客戶。顯然,彼時的AMD目標十分明確:通過更高的核心數量來提升服務器大規模云化時的計算密度,進而使超大規模數據中心具備更強的服務及運營能力。
GCP上的實例創建頁面,第二代AMD EPYC赫然在列
在AWS EC2上的c5a系列實例皆為第二代AMD EPYC平臺
而從GCP和AWS為代表的一眾頂級云服務提供商的接受度來看,第二代AMD EPYC已經很好地完成了發布之初的既定目標,成功打入了超大規模云數據中心以及頂級CSP市場。
這證明了AMD在芯片設計和市場營銷等方面的成功。但既然第二代AMD EPYC如此成功,何不進一步發掘一下其潛力呢?
第二代AMD EPYC處理器家族迎來全新成員
從第二代AMD EPYC的產品線說開去
從第二代AMD EPYC產品列表來看,初期的EPYC 7002(第二代EPYC的產品編號)包含22款產品,核心數量從8到64,在8核、16核、24核、32核、48核、64核等主流核心數量段位上均安排了3-5款產品;在核數相同時,不同產品以頻率和L3緩存配置不同加以區分。
不過,相對于競爭對手基數龐大的產品線,由22款產品組成的EPYC 7002序列仍舊稍顯單薄。雖然AMD內部人士層表示,現階段的AMD并不會將一些核心數量和頻率的特化型號加入產品計劃之中;但這并不意味著Milan來臨之前,第二代AMD EPYC產品線會止步不前。
于是,AMD在2020年初在EPYC 7002系列之下發布了全新的7Fx2系列處理器。
頻率提升、緩存提升——7Fx2為更多企業用戶帶來新選擇
作為Milan發布之前,第二代AMD EPYC中的最后成員,7Fx2系列包含3款產品,分別是24核心的7F72、16核心的7F52和8核心的7F32。
從3款新處理器與相同核心數量的原有型號對比中我們可以發現,三款新品除了在核心頻率上有所加強之外,最核心的變動便在于CCD與核心的數量配比上。
而為了明晰其間的奧秘,我們有必要回顧Rome架構的一些特性。
Rome架構采用ChipLets方式進行設計,在完整的64核心CPU之中包含了9個Die。9個Die分別是位于中間位置,負責內存控制和IO功能的IOD(IO Die);以及位于IOD周邊的8個CCD(Core Compute Die)。
每個CCD內部包含兩個CCX(Core Compute CompleX)結構。每個CCX包含4個Zen 2核心以及對應的L1指令及數據緩存、L2緩存。而每個CCX之內的4個核心則共享16MB的L3緩存。
在了解了這一結構之后,7Fx2三款新品的由來便十分明確。
7F72包含6個CCD,每個CCD之中有4個核心被激活。而由于被激活的4個核心分別位于2個CCX之上,所以每2個核心便可共享該CCX之內的全部16MB L3緩存。換句話說,7F72每核心擁有8MB L3緩存;整個CPU共有192MB L3緩存。
作為對比,原先的7402在物理結構上則只包含4個CCD,而每個CCD上的核心也只能分配到4MB L3緩存。這一核心數量與緩存的配比與64核心的7742保持一致。
同樣的原理,7F32和7F52的核心與緩存配比則更為“奢華”,每個核心都可以用上其所在的CCX之上的全部16MB L3緩存。
當然,除了每核心L3數量的大升級之外,7Fx2系列也在基礎頻率和Boost頻率上做了幅度不小的升級。
既然頻率獲得了提升、激活了更多的物理結構(包含更多CCD和其上L3緩存),那么處理器的功耗也自然會上漲。于是,我們便可以看到,3款7Fx2新品的默認TDP分別到了240W、240W和180W。
不過AMD相關人士表示,由于原先提供的散熱參考設計仍舊保有余量,因此能夠覆蓋7742級別處理器的散熱裝置和設計可以繼續在新的7Fx2系列上服役。
AMD EPYC 7Fx2,為誰而來?
在了解了7Fx2系列處理器的特性及其細節構成之后,問題接踵而至。更新了特性的7Fx2系列處理器究竟面向怎樣的用戶和應用場景?
從AMD的PPT上我們可以看清三款處理器的官方定位——每核心性能以及企業應用環境中的領先價值。為了進一步闡明釋意,AMD還附帶了7Fx2系列的三種典型應用場景——超融合基礎設施、商業HPC應用以及關系型數據庫。同時,AMD還給出了其在商業市場中的最新進展——HPE Nutanix超融合產品、IBM Cloud裸金屬云服務以及超微的SuperBlade系列刀片服務器。
在超大規模云化數據中心當中,OS大部分來自開源項目或自研,軟件堆棧的成本相對較低。因此,在通用計算類的云服務場景中,客戶更關心每u所能提供的核心數量。畢竟,在EC2、Compute Engine等類似的服務中,實例是按照CPU的等級與核心數量來收費的。
而在企業環境中,軟件堆棧大多來自商業授權,按照運行軟件的Socket數量、核心數量甚至線程數量來收費。因此,在絕大部分商業應用中,用戶關心的核心并非計算密度或核心數量,而是每個核心是否能夠提供更高性能。由此,企業用戶便可通過基礎架構更新所帶來的核心性能提升來獲得軟件成本與基礎架構成本之間的全新平衡,進而降低商業應用的總成本。
顯然,基于現有的Rome架構,繼續推高頻率和每核心緩存數量的EPYC 7Fx2系列,對于更多企業用戶來說,會更接近他們的“甜蜜點”。
之于AMD,雖然超大規模云化數據中心能夠為自身品牌和EPYC這一系列帶來足夠大的關注度和話題點,但超大規模數據中心本身并非行業的主流。因此,已經在這一市場斬獲頗豐并引發市場和用戶的足夠關注之后,順勢推出市場覆蓋面更廣的、面向普通企業級應用的更多產品才是將關注轉化為收入的正確方法。
7Fx2系列產品所承擔的任務正是如此。
第二代AMD EPYC 7Fx2系列將面臨哪些競爭?
基礎特性的升級讓AMD有更多本錢來滿足企業市場的需求,但這片市場也并非未被開墾的處女地。想要在這一市場獲得成功,AMD不僅要為用戶提供令人滿意的性能,更需為用戶帶來令人滿意的價格。
從目前已經掌握的信息來看,按官方指導價格(美元),7F72定價2450,7F52定價3100,7F32定價2100。
卡位8核的競爭對手,價格從2200美元到3400美元(去掉某些字母結尾的特化型號)。但從產品序列的厚度來看,8核心產品并非競爭對手企業級產品的主力關注領域。相反,有很多消費級、工作站W產品則在這一領域多有布局。即便拋開所有Rome架構的特性不談,單從價格來看,EPYC 7F32的2100美元定價便具備相當的吸引力。
卡位16核的競爭對手,價格從1400美元到3300美元;如果包含L結尾的超長生命周期型號的話,價格區間也會上探到約4800美元左右。而從表格寬度和競品數量來看,16核心已經進入了主力產品區間。在價格層面,7F52定價3100美元,在16核心產品之中也屬于高端產品。顯然,要在這一定位中有所斬獲,EPYC 7F72需要提供更強的性能;而這正是7F72所配備的256MB L3緩存、更高的頻率以及8通道內存控制器的用武之地(當然,這里我們也需要提出,AMD與競品采用的緩存架構不一樣,競品的優勢在于更大的L2,而Rome的優勢則在于L3更大)。
而到了24核產品線,競品的布局則可以用更加細密來形容,產品序列從Gold到Platium,價格范圍也從1400美元左右到7000美元左右。7F72定價2450美元,單看價格便知是瞄準性價比而去的。
從AMD EPYC 7Fx2系列三款產品的價格層面,我們可以看出,雖然同屬一個系列,但在不同的定位中,其目標細分卻是有所不同的。除了在8核層面具備絕對價格優勢的7F32,剩下兩款7F52和7F72均會面對來自競爭對手相似定位產品的阻力。
7F52和7F72能否在自身的定位中獲得比較優勢,性能表現是關鍵。而這也正是本篇評測所關注的重點。
AMD EPYC 7F72處理器雙路系統評測
測試說明:
本次測試通過遠程接入AMD測試機房的形式來進行。
系統配置:
AMD雙路服務器使用了兩顆AMD EPYC 7F72 24核處理器,支持超線程。如此,在系統中我們可以看到這臺服務器有96個邏輯CPU。在測試中,Numa Nodes設置為2。
CPU信息:
具體到NUMA節點的設置,我們使用numactl進行了讀取:
可以看到兩個NUMA node均分了邏輯CPU和512GB的內存。AMD雙路服務器以性能見長,在此我們通過實驗對這臺服務器的性能進行了全面的評估。測試環境及工具如下:
01、HPL Linpack 2.3測試
Linpack是目前流行的理論性能測試工具,用于測試系統的浮點運算性能。在這一項目中我們使用更能突出系統并行計算能力的HPL Linpack 2.3來進行測試。
測試中,關鍵參數的設置為P=4,Q=3,N= 239008, NB= 224。測試執行了4056秒,最終結果為PASSED,這款AMD EPYC 7F72雙路服務器獲得了2171.3 Gflops的成績。
02、Sysbench 1.0.20
SysBench是一個模塊化的、跨平臺、多線程基準測試工具,主要用于評估測試各種不同系統參數下的數據庫負載情況;其中包括CPU、磁盤IO、調度程序性能、內存、POSIX線程性能、數據庫性能(OLTP)等數個基準測試模塊。在這里我們主要選取CPU、內存以及OLTP的測試結果。編譯器方面,我們使用的是LuaJIT 2.1.0 beta2。
CPU:
Sysbench CPU測試使用1,4,16,32,48,64,80,96及128線程分別對服務器壓測300s,并記錄雙路AMD EPYC 7F72的速度及延時數據。結果如下圖所示:
隨著壓力逐步上升,測試成績也被劃為三個階段,第一個階段壓力明顯偏小,CPU每秒鐘執行的events數隨著壓力升高而升高,并且延時一直保持在2ms以內。當Threads超過48是,CPU測試成績趨近于35000,而延時小幅增長,但是仍然低于3ms。第三個階段,當壓力超過系統的邏輯CPU數時,延時明顯升高。Thread=96時,CPU Speed為34885.8 events/s,同時延時(95%)為2.76ms。
內存:
Sysbench內存測試中我們使用了1,4,16,32,48,64,80,96,128幾種Threads幾種不同的壓力做4k寫測試,每種壓力測試10s。與CPU測試不同的是,這里我們展示的是內存寫帶寬和最大延時。
當Thread為1時,此時負載完全是4k順序寫,內存帶寬成績達到本次測試最大值13825.82 MiB/s,此時最大延時為0.07ms。
OLTP:
Sysbench的OLTP測試則是模擬一個數據庫的壓測環境,對服務器性能進行全面評估。這項測試中我們將Sysbench的Table size分別設置為200000,500000,1000000,1500000,2000000;并使用32,48,64,80,96,128等幾種不同的Threads參數進行組合測試。結果如下圖:
本次測試固定為100個Table,將單個Table的數據量作為測試數據量規模的主要變量,而并發線程數作為并發壓力的主要變量。從測試結果來看,在不同Table大小的情況下,線程數增加可以帶來性能成線性增加,并且始終保持著5ms以內的低延時,并在最大并發壓力128線程時取得最好的成績,可以看出不同Table大小設置對于性能表現的影響并不大。顯然,這與測試環境本身配置的512GB大內存有直接關系,如果MySQL的緩存被占滿,數據需要不斷下刷到SSD,屆時延時將會明顯升高。
峰值性能出現在Table大小為20W,線程數為128時,此時峰值性能為47873.84 TPS,95% 延時為4.25ms。
03、TPCC基準測試
此項測試中我們使用的數據庫是Oracle官方的MySQL 8.0,并使用Perconas的TPCC-MySQL工具進行測試。
TPCC是TPC(Transaction Processing Performance Council)設計的一個OLTP基準測試規范,TPCC模擬的是一個大型商品批發商的在線訂單處理系統;這一大型商品批發商擁有 N 個位于不同區域的倉庫,每個倉庫負責為 10 個銷售點供貨,每個銷售點有 3000 個客戶,每個客戶平均一個訂單有 10 項產品。
TPCC 測試模型(source: http://www.tpc.org/)
TPCC測試涉及到了新訂單處理、更新客戶賬戶余額并反饋支付狀態、發貨、查詢客戶交易記錄及倉儲狀態等操作。其中每分鐘的新訂單量也被稱為TpmC,是TPCC測試最重要的指標。
通過設置倉庫個數(N)的值及并發連接數,可以調節TPCC測試的壓力。由于TPCC測試涉及的操作類型較多,所以應用下發的I/O模型是個復雜的混合讀寫模型。因此,TPCC測試是一個對系統、CPU、內存及存儲等組件綜合性能及穩定性的評估方案。
TPC 不提供基準測試程序的代碼,而只給出基準程序的標準規范。目前,很多廠商和實驗室給出了符合TPCC測試規范的應用,本次我們測試使用的Percona TPCC-MySQL測試工具便是其中使用較為廣泛的一種。
此次TPCC測試我們共生成了10000個倉庫,整個數據庫超過1.1TB,如此的數據庫規模可以讓壓測短時間內充滿系統Cache,讓系統性能趨于穩定,避免大容量內存帶來的結果偏高的現象。測試中將使用32,48,64,80,96,128幾種不同的連接數對服務器進行壓測,每次壓測時間為30分鐘(每次測試之前我們都會重啟MySQL服務,以規避上次測試的影響)。首先是不同連接數的TPCC測試結果:
可以看到當Connection為48時,AMD EPYC 7F72雙路系統的TPCC測試可以達到298951.875的TpmC的成績。具體到Connection為48的這項測試,結果如下圖:
可以看到TpmC值不足30萬的實踐主要集中在前10分鐘,而之后的測試結果處于30萬附近,且隨時間的推進,測試成績也趨于穩定。
04、OracleDB TPCC
最后,我們選擇了商用數據庫中最主流的產品——OracleDB來測試AMD EPYC 7F72雙路系統的性能表現。
與之前使用的MySQL測試類似,通過設置倉庫個數(N)的值及并發連接數,可以調節OracleDB的TPCC測試壓力。測試中我們分別設置了1000、5000和12000三種warehouse數量,測試其在48、96、144和192個連接情況下的性能表現。
從上面的測試結果當中,我們可以看出無論warehouse數量多寡,峰值性能總是出現在96連接時。而在1000warehouse設置下,TPCC性能達到了峰值,為480,135 TpmC。
在不同的warehouse數量的設置當中1000和5000的峰值性能表現較為接近;而當warehouse數量來到12000時,性能下降則比較明顯,并且不同連接數時的性能差異也在收窄,說明這一數量的warehouse已經達到了雙路7F72系統的性能瓶頸。
AMD EPYC 7F52處理器雙路系統測試
在相同的系統環境下,我們通過更換處理器的方式進行AMD EPYC 7F52雙路處理器的性能測試。NUMA Nodes同樣設置為2。
CPU信息:
系統環境如下:
01、HPL Linpack 2.3測試
Linpack是目前流行的理論性能測試工具,用于測試系統的浮點運算性能。在這一項目中我們使用更能突出系統并行計算能力的HPL來進行測試。其中關鍵參數P=4,Q=4,N= 239008, NB= 224.測試執行了4056秒,最終結果為PASSED,這款AMD EPYC 7F52雙路服務器獲得了1616.8 Gflops的成績。
02、Sysbench 1.0.20
SysBench是一個模塊化的、跨平臺、多線程基準測試工具,主要用于評估測試各種不同系統參數下的數據庫負載情況;其中包括CPU、磁盤IO、調度程序性能、內存、POSIX線程性能、數據庫性能(OLTP)等數個基準測試模塊。在這里我們主要選取CPU、內存以及OLTP的測試結果。編譯器方面,我們使用的是LuaJIT 2.1.0 beta2。
CPU:
Sysbench CPU測試使用1,4,16,32,48,64,80,96及128線程分別對服務器壓測300s,并記錄雙路AMD EPYC 7F52的速度及延時數據。結果如下圖所示:
隨著壓力逐步上升,測試成績也被劃為三個階段,第一個階段壓力明顯偏小,CPU每秒鐘執行的events數隨著壓力升高而升高,并且延時一直保持在2ms以內。當Threads數量超過64時,CPU測試成績趨近于最高的24500左右,而延時小幅增長至2.6ms左右。第三個階段,當壓力超過系統的邏輯CPU數,延時明顯升高。Thread=64時,CPU Speed為24511.22 events/s,同時延時(95%)為2.61ms。
內存:
Sysbench內存測試中我們使用了1,4,16,32,48,64,80,96,128幾種Threads幾種不同的壓力做4k寫測試,每種壓力測試10秒。與CPU測試不同的是,這里我們展示的是內存寫帶寬和最大延時。
當Thread為1時,此時負載完全是4k順序寫,內存帶寬成績達到本次測試最大值14419.09 MiB/s,此時延時小于0.01ms(推測受限于sysbench報告的0.01ms,測試中看到的是0。)
OLTP:
Sysbench的OLTP測試則是模擬一個數據庫的壓測環境,對服務器性能進行全面評估。這項測試中我們將Sysbench的Table size分別設置為200000,500000,1000000,1500000,2000000,并與32,48,64,80,96,128幾種不同的Threads參數進行組合測試。結果如下圖:
從測試結果來看,在不同Table大小的情況下,128線程的設置均能夠取得最好的成績,且不同Table大小設置對于性能表現的影響并不大。顯然,這與測試環境本身配置的512GB大內存及強大的整體性能有直接關系;即便Table大小達到200W,仍然沒有達到服務器的性能上限。
測試中的峰值性能出現在Table大小為20W、線程數為128時,此時峰值性能為33202.08 TPS。
03、MySQL 8測試:
此項測試中我們同樣使用了Oracle發布的MySQL 8,并使用Percona發布的TPCC-MySQL工具進行測試。
此次TPCC測試我們共生成了10000個倉庫,整個數據庫超過1.1TB。
測試中將使用8,16,32,64,128幾種不同的連接數對服務器進行壓測,每次壓測時間為30分鐘(每次測試之前我們都會重啟MySQL服務,以規避上次測試的影響)。首先是多次TPCC測試的結果:
可以看到當Connection為64時,AMD EPYC 7F52的TPCC測試可以達到峰值的243537.266 TpmC。在Connection為64時,隨時間變化的性能曲線如下圖:
從上面的圖標中,我們可以看到,隨著測試的進行,系統在前13分鐘內性能穩步上升,并在第16分鐘時達到峰值。但隨著測試的繼續進行,MySQL的緩存逐漸消耗殆盡,數據需要下刷到磁盤,系統性能會出現輕微波動和緩慢下降,從測試看系統綜合性能最后仍會穩定在24萬TpmC附近。
結語:
憑借優秀的Rome架構,AMD終于再次向更主流的企業級市場發起了進攻。
而與以往不同的是,此次蓄力而來的AMD帶著的是在超大規模處理器市場所積累的優秀口碑、EPYC 7Fx2系列和眾多產品的優秀性能以及Rome架構本身的眾多先進特性。與此同時,AMD更為此次的EPYC 7Fx2系列產品規劃了優異的性價比。
7Fx2系列雖是Rome系列的最后成員,但其為AMD所打開的企業級市場大門卻讓AMD和整個市場都可以在2020年市場和之后即將發布的Milan中期待更多。
AMD在企業級市場的再次崛起與其近年來帶給用戶的更多驚喜說明一個道理,盡管路長且險,但未來仍未有定數;技術不停歇,我們都應保持期待。