鯤鵬云服務器實戰:華為云鯤鵬KC1實例 vs. 阿里云G5實例

今年一月份,華為正式發布了鯤鵬920數據中心高性能處理器,該處理器兼容ARM架構,采用7納米制造,最高支持64核,主頻達到2.6GHz,支持八通道DDR4、PCIe 4.0、100G RoCE網絡。
華為云基于鯤鵬920處理器的通用計算增強型KC1實例,作為市面上為數不多基于ARM架構的云服務器表現究竟如何,我們與阿里云的企業級通用型G5實例進行了全方位的對比。
一、處理器及內存性能
此次我們測試的云服務器產品分別是華為云鯤鵬通用計算增強型KC1實例以及阿里云企業級通用型G5實例各三臺。所有服務器均為4核16GB內存、運行CentOS 7.4操作系統,且均位于北京。
其中華為云KC1實例采用的是華為自研的鯤鵬920處理器,主頻2.6GHz;阿里云G5實例則是采用英特爾SkyLake架構的至強鉑金牌8163處理器,主頻2.5GHz。我們使用Unixbench對這兩款服務器進行性能跑分,需要指出的是,由于兩款服務器架構不同,因此相關執行指令會略有不同。
華為云KC1實例跑分前需要對Unixbench重新編譯,如果直接編譯會報錯,以下三條指令是專門針對ARM架構的服務器:
sed-i's/-mtune=native//'Makefilesed-i's/-march=native//'Makefilesed-i's/$fieldeq"bogomips"/$fieldeq"bogomips"or$fieldeq"BogoMIPS"/g'Run
修改后就可以使用Unixbench對這兩種服務器進行跑分。
CPU多核整型跑分指令:
./Run-c4dhry2reg
CPU多核浮點型跑分指令:
./Run-c4whetstone
這里,我們對華為云KC1實例和阿里云G5實例分別進行六次跑分,結果如下:
通過平均得分的對比我們發現,華為云KC1實例多核整型得分遠高于阿里云的G5實例,多核浮點型得分兩者不相上下。由此我們可以看到鯤鵬920處理器在性能表現上與x86架構處理器的差距不大,而且在整型計算上的優勢更加明顯,即可以更好應對基因測序、圖像渲染、大數據等大規模高強度的數據處理任務。
再來看二者內存性能的表現。內存方面,不同廠家對內存選取也不同,出于節省成本的考慮,云服務器廠商往往很少公布內存的頻率和型號,這里我們通過stream工具進行測試。
stream是業界廣為流行的綜合性內存帶寬實際性能測量工具之一,支持Copy、Scale、Add、Triad四種操作。
Copy它先訪問一個內存單元讀出其中的值,再將值寫入到另一個內存單元。Scale操作先從內存單元讀出其中的值,作一個乘法運算,再將結果寫入到另一個內存單元。Add操作先從內存單元讀出兩個值,做加法運算,再將結果寫入到另一個內存單元。Triad的表示將Copy、Scale、Add三種操作組合起來進行測試。
對應的四種操作如下:
復制(Copy) a(i) = b(i)
尺度變換(Scale) a(i) = q*b(i)
矢量求和(Add) a(i) = b(i) + c(i)
復合矢量求和(Triad) a(i) = b(i) + q*c(i)
測試前,應該先解壓編譯stream文件,具體編譯代碼如下:
gcc-O3-fopenmp-DSTREAM_ARRAY_SIZE=64000000-DNTIMES=10stream.c-ostream
這里的內存測試我們同樣對測試服務器進行十次測試取平均值,具體測試數據如下:
*上述數據單位均為MB/s
通過平均值的對比我們看到,相同配置下,華為云KC1實例所使用的內存在性能上是優于阿里云G5實例的。這樣快速的數據傳輸也為服務器的數據處理能力提供了更好的保障。
此外,內存時延也對整個服務器的數據處理能力有很大的影響。這里的內存時延指的是三級緩存的時延。
現階段的處理器一般都有三級緩存,處理器在取數據的時候會優先從最靠近的緩存開始,取不到再去內存取數據。越靠近處理器,取數據的速度越快,通過LMBench等工具我們能精準的刻畫這種讀取的延時,也就是我們說的內存時延,不同緩存的時延呈現的是指數級增長,在對應的緩存中,時延是穩定的。
內存的時延都是以納秒為單位,而我們實際業務的需求中往往都是以毫秒為單位,通過LMBench,我們獲得了兩款服務器的時延情況:
其中,華為云KC1內存時延平均值為100.9納秒,標準差為0.74;阿里云G5內存時延平均值為125.1納秒,標準差為1.20。通過這組數據我們看到,華為云KC1的內存時延水平更低,也更穩定。相比于阿里云G5,在時間上有近20%的壓縮,能更好的為處理器提供穩定高速的數據處理能力。
我們看到,作為新品的華為云鯤鵬云服務器KC1在處理器內存的表現上甚至已經能超越同層次的X86服務器。相信對于X86陣營的云服務廠商來講,現在是時候正視鯤鵬云服務器這個強大的對手了。
二、網絡性能
一般而言,各家云服務廠商允許用戶在同一機房申請多臺服務器搭建各種服務,這種服務被稱之為虛擬私有云,是用戶可以在這些服務器之間自由配置IP地址段、子網、安全組等子服務,也可以申請彈性帶寬和彈性IP搭建業務系統。
這里我們首先使用netperf工具對這兩家服務器運營商內網間TCP帶寬性能進行測試。這里我們需要在各個主機中開啟2臺陪練機,測試機與2臺陪練機均安裝netperf,測試機做Server,陪練機做Client負責打流。
測試端口令如下:
netserver-pport&(7001、7002、7003、7004端口為測試端口)
客戶端口令如下:
netperf-Hserverip-pport-tTCP_STREAM-l120---m1440&(serverip為測試機內網IP,port為對應測試接口)
然后通過sar命令查看打流的數據的平均值,測試結果如下:
測試結果來看,華為云KC1實例內網帶寬在3950Mbps上下,阿里云G5實例內網帶寬在1500Mbps上下。整體來看,華為云KC1內網帶寬更具優勢,適合數據量比較大的多臺服務器組成的內網服務器集群。
當然,除了內網的帶寬,時延也是一個重要的參數。延遲決定系統每秒處理的最大請求數,而帶寬決定了可支撐的最大負荷。
qperf和iperf/netperf一樣可以評測兩個節點之間的帶寬和延時。可以在測試tcp/ip協議和RDMA傳輸。不過相比netperf和iperf,支持RDMA是qperf工具的獨有特性。在CentOS中安裝qperf比較簡單,直接使用yum工具就能直接安裝。
通過qperf測試服務器的延時和帶寬,需要兩臺服務器一臺做服務端另一臺做客戶單打流。其中服務端直接運行qperf,無需任何參數。
服務器端直接運行qperf無需任何參數,默認就會開啟19765端口。客戶端運行獲取帶寬、延時情況,運行過程中不需要指定端口號,只要指定主機名或者IP地址即可。這里我們查看服務端與客戶端的時延情況,并進行五次測試取平均值,測試結果如下:
我們看到華為云KC1實例內網時延平均為35.92微秒,而阿里云G5實例平均時延為41.70微秒,華為云的內網時延更短,這就讓內網間數據交換更加迅速快捷,相比于阿里云G5服務器有近15%的提升。
在內網的帶寬和時延上,我們看到華為云KC1相比于阿里云G5同配置更具優勢,這就為大規模的內網服務器集群建設帶來了可能。
三、存儲表現與價格
現階段不同的云服務器廠商會提供不同的存儲解決方案以應對各種使用場景,這種存儲解決方案往往稱之為云硬盤,它為ECS、BMS等計算服務提供持久性塊存儲的服務,通過數據冗余和緩存加速等多項技術,提供高可用性和持久性,以及穩定的低時延性能。用戶可以對云硬盤做格式化、創建文件系統等操作,并對數據做持久化存儲。
現階段云服務廠商基本上都會提供三種存儲解決方案,分別是普通云盤、高速云盤、SSD云盤。這里我們通過掛載不同種類的云盤對測試機的存儲能力進行測試。
我們這次針對兩家廠商的超高IO云盤/SSD盤進行測試,測試所使用的工具為fio,測試項目包括隨機讀寫IOPS和順序讀寫吞吐量,測試磁盤大小均為1000GB。
在4K隨機讀寫測試中,華為云超高IO云盤達到33000 IOPS,順序讀寫吞吐量均達到了350MB/s。相比于阿里云的云盤速度上高出不少。
從SSD云盤對比上來看華為云更具領先優勢,阿里云SSD云盤性能尚可。前段時間華為云發布了云存儲All-Flash戰略,我們也期待華為云能在存儲上的持續突破。
價格方面,阿里云G5服務器4核16GB當前報價為每年4732.8元,除了4核16GB配置,還有最高64核可選。而華為云KC1服務器目前處于公測階段,最高支持60核,測試期間用戶可以免費申請使用。
總結
現階段多數云服務廠商均以X86架構的服務器為主,客戶對ARM架構的服務器大多持觀望態度。但通過本次測評我們發現,鯤鵬云服務器在計算、網絡、存儲等多個方面已經成熟,且會在如大數據、基因測序等整型計算場景下較x86更具優勢,相信鯤鵬新算力的加入,可以為多樣應用提供全新的算力選擇。
此前,筆者與同行交流探討過一個問題,在服務器市場上,英特爾應該懼怕AMD嗎?顯然無論是英特爾也好,AMD也罷,他們都是X86陣營的服務器制造商,而能威脅到X86架構服務器的,恰恰是來自體系之外——ARM。Redis創始人Salvatore Sanfilippo此前也表示,他正在將ARM作為Redis的主要架構。而微軟也為Windows 10應用開發針對ARM的支持,總之,ARM的前景未來可期。
當然,ARM服務器成為云端主流還有很長一段路要走,而基于鯤鵬處理器的華為云鯤鵬全系列云服務,向產業釋放鯤鵬新算力的同時,也讓我們看到華為在這一領域堅定的決心。