Advanced

單核多核比一比 AMD EPYC處理器 vs. 占用大量CPU資源的糾刪碼

by GIGABYTE
用來確保資料可靠性和安全性的糾刪編碼技術,由於把數據分解成碎片、分散保存在儲存系統的各處,因此會占用大量CPU資源。AMD EPYC 7601 處理器搭配MemoScale Erasure Coding Library處理糾刪碼,會有什麼表現?我們用技嘉科技MZ31-AR0伺服器主機板來做測試,一探究竟。
引言
眾所矚目的AMD EPYC系列處理器,具備空前未有的卓越運算能力,有望能在伺服器市場的數據儲存領域,奪下獨占鰲頭的領先地位。用以儲存數據的伺服器CPU,必須有效保存重要資料,因此要撐得起各種計算密集型的應用程序,例如糾刪碼 (erasure coding)、重複數據刪除、壓縮等等。本篇白皮書探討的主題,是利用占用大量CPU資源的糾刪編碼技術,測試MemoScale Erasure Coding Library輔助的AMD EPYC 7601 處理器,所表現的效能如何?實驗中使用技嘉MZ31-AR0伺服器主機板。《詞彙學習:什麼是糾刪碼(erasure coding)?
勢在必行:數據遽增、儲存裝置必須趕緊跟上
統計顯示,全世界的數據量每兩年翻一倍。巨量資料排山倒海而來,增設大量的儲存裝置,已經勢在必行。能減少硬體占用空間或營運成本的技術,例如糾刪碼、重複數據刪除、或是壓縮,變得越來越重要。此外,儲存裝置的效能突飛猛進、數據流量也與日俱增。處理器是否能趕緊跟上,將是越來越重大的挑戰。本篇白皮書當中,我們仔細檢查,使用AMD EPYC處理器運算大量的糾刪碼數據,所呈現的運算效能究竟如何?
資料儲存中,糾刪碼扮演的角色

資料中心越來越龐大,儲存裝置故障或斷電的可能性隨之增加。每天、甚至每小時,故障都有可能發生。因此,解決這種問題的防備機制是不可或缺的。長期以來,避免數據大量遺失的防範措施是複製,也就是重複拷貝資料,但這麼做有明顯的缺點:同樣的數據儲存好幾次,等於要增購相同倍數的昂貴儲存裝置。《詞彙學習:什麼是資料中心?


糾刪碼是複製資料的替代方案。它遵循RAID 5和RAID 6的運作原理,將數據切割成不同區塊,再添加一些額外的數據,用來恢復遺失的資料。然後,再將區塊分配到各種儲存媒介或故障域。糾刪碼的主要優勢,是跟複製有一樣好、甚至更好的保護效果,可避免資料流失,所需儲存的數據量卻可減少五成到八成。


糾刪碼有些附加成本:例如,必須占用額外的計算資源,處理新增的冗餘系統。不過,利用糾刪碼提升編碼和解碼速度,可加快儲存裝置的資料流量、並且減少檢索延遲。

AMD EPYC 處理器
AMD EPYC是AMD推出的x86架構伺服器微處理器產品線,採用Zen微架構,性能強大、性價比高。有些IT組織購買雙插槽伺服器,卻只用其中一個插槽;也有些IT組織購買雙插槽伺服器,理由不是為了擴充運算能力,而是現有的單插槽伺服器的輸入輸出裝置與記憶容量不夠用,必須透過額外插槽來補足。AMD EPYC支援高達32顆核心、8通道記憶體、128 PCIe® 3.0通道,讓單插槽伺服器能夠一次到位,提供過往僅有雙插槽伺服器才能實現的功效與性能。《詞彙學習:給你一分鐘,一次看懂關於PCIe
技嘉伺服器主機板
技嘉設計與製造主機板已有三十多年的歷史,長年累積的專業知識,完美呈現於領先業界的伺服器主機板上面。技嘉主機板充分優化AMD EPYC處理器的優勢,通過單插槽與雙插槽AMD EPYC系統的SPEC CPU 2017基準測試,拿到名列前茅的優異成績(註)。MZ31-AR0伺服器主機板還有許多其他特性,包含10GbE雙連接埠、適用於高密度高速儲存器的內建M.2連接器,並且支援AMD Radeon Instinct™ MI25 加速器。MZ31-AR0伺服器主機板也用於技嘉自家的S451-Z30 4U 36 x 3.5" HDD儲存伺服器。關於MZ31-AR0的更多資料,請參考附錄A。
MEMOSCALE ERASURE CODING LIBRARY
MemoScale Erasure Coding Library採用里德-所羅門(Reed Solomon)糾刪碼來優化編碼與解碼,適用於許多不同類別的伺服器,該資料庫亦支援多種專利授權的糾刪碼演算法,能進一步提升效能、降低網路流量與硬體成本。MemoScale Erasure Coding Library適用於專屬的儲存系統;此外,MemoScale還為CEPH、SWIFT、HDFS等各種開源儲存方案提供糾刪碼插件。
我們的測試方式
我們使用MemoScale糾刪碼基準測試工具,評估不同糾刪碼資料庫在兩套系統上的表現。基準測試工具配置插件系統,可載入不同糾刪碼資料庫,用以測試性能。基準測試過程中,透過預先分配的緩衝區,隨機分配1GB的數據給每一個執行緒,每一個緩衝區包含4KB或 4096KB的容量;然後,透過緊密迴圈將糾刪碼資料庫的編碼指令執行若干次,每次執行都隨機挑選十四個緩衝區,以確保是從主記憶體、而非快取記憶體取得緩衝區。

為了避免執行緒被重新分配到不同的處理器核心,整個基準測試的過程中,每個執行緒都跟特定的核心綁定。如此一來,可確保分配給執行緒的記憶體能維持處理器局部性。我們亦關閉渦輪加速的選項。

用於測試效能的系統配置,包含十個數據塊和四個冗餘區塊、及基於范德蒙(Vandermonde)矩陣方法的里德索羅門碼。我們用兩個不同大小的區塊執行測試:4KB或4096KB。本篇報告的解碼測試結果,僅限於解碼遺失的單一數據塊,因為這是儲存裝置最常遇到的遺失數據。

評估效能的方法,就是排除正在運算的編碼冗餘區塊,獨立測量編碼與解碼的數據量。為了確保換算出來的流量指標涵蓋數據與冗餘區塊,可將數據量乘以反映執行程式額外消耗時間的倍數。使用十個數據塊和四個冗餘區塊所組成的配置來跑糾刪碼,這個倍數是1.4倍。
利用糾刪碼做編碼與解碼
使用糾刪碼編碼數據,就是產出糾刪碼冗餘區塊的流程,每當資料儲存於採用糾刪編碼技術的伺服器,這個流程就要再跑一次。編碼速度越快,儲存資料的速度也越快、寫入延遲越低。

使用糾刪碼解碼數據,則是從其他數據塊和冗餘區塊中恢復原始資料的流程,每當儲存系統從設備故障中恢復、或是必須進行降級讀取,這個流程就要跑一次。所謂的降級讀取,是當單一或多數的原始數據塊遺失或暫時無法使用,必須從儲存裝置中解碼和讀取數據。解碼速度越快,降級讀取資料的速度也越快、延遲越低。
單核編碼與解碼的表現
多核編碼與解碼的表現
結語

本篇白皮書當中,我們評估AMD EPYC 7601 處理器搭配MemoScale Erasure Coding Library處理糾刪碼的表現。基準測試執行於技嘉MZ31-AR0伺服器主機板上面。

單核EPYC用糾刪碼來編碼數據,4KB或4096KB區塊的編碼速度皆超過5 GB/s。而用糾刪碼解碼數據,4KB區塊速度超過10 GB/s、4096KB區塊超過14 GB/s。多核測試中,EPYC的8通道記憶體和32顆核心更是表現卓越,編碼速度88 GB/s、解碼速度111 GB/s。

此結果證明,EPYC的能力驚人,可快速移動和處理大量數據。這可能影響AMD處理器的使用情境,及使用者該如何建構伺服器,才能充分發揮這個優勢。不久的將來,我們計劃在EPYC處理器上使用MemoScale軟體,針對儲存裝置的其他計算密集型工作負載,再做進一步的基準測試。

想要掌握最新科技動向?馬上訂閱!
訂閱電子報