AWS「芯」事:從Nitro「神卡」到ARM伺服器晶片

雲體驗師 發佈 2021-08-05T16:16:26.783517+00:00

雲廠商(超大規模數據中心)是伺服器廠商又愛又恨的客戶,早在幾年前,雲廠商要求定製化伺服器,去掉不用的組件,因為採購規模很大,所以還可以進一步壓價,這使得部分強調高價值的伺服器廠商直接放棄了這部分市場。

雲廠商(超大規模數據中心)是伺服器廠商又愛又恨的客戶,早在幾年前,雲廠商要求定製化伺服器,去掉不用的組件,因為採購規模很大,所以還可以進一步壓價,這使得部分強調高價值的伺服器廠商直接放棄了這部分市場。

而現在,隨著規模的增長,考慮到規模經濟效應,越來越多的廠商開始考慮定製晶片,甚至自己研發晶片,這其中,亞馬遜雲服務(AWS)絕對是先鋒式的存在,自研晶片不僅降低了成本,還能成為競爭中的有力武器。

最近,AWS大中華區產品部計算與存儲總監周舸介紹了AWS在晶片定製化方面的一些細節。

Nitro:能把各種硬體(包括Mac Mini)變成EC2實例的神器

AWS是雲廠商里較早(可能是最早)自行設計晶片的,其根本的出發點還是要用上自己真正適合的東西,在我看來,Nitro是AWS主機區別於友商的一大因素。

AWS從2013年開始用Nitro卡,業內部分技術實力比較強的雲廠商也於近年來推出了類似方案。

為了開開心心的用上自己的晶片,AWS在2015年收購了以色列晶片公司Annapurna Labs(此前雙方合作做出了Nitro卡)。

隨著晶片實力的加強,AWS的Nitro從一個網卡一步步演進,變成了AWS基礎設施非常非常重要的一個組成部分。

Nitro的能力可以總結為三個方面:

Nitro HypervisIOr:在專有硬體上承載hypervisior,hypervisior不占用主機資源不影響主機性能,讓主機實現近似裸機伺服器的性能表現;

Nitro Cards:專有硬體承載存儲、網絡功能,以及控制EC2實例的業務邏輯;

Nitro安全晶片:硬體層的安全驗證能力;

也就是說,Nitro既能作為網卡,也能連接和控制硬碟,控制EBS塊存儲,它Offload了CPU運行Hypervisior的工作負載,而且還能做一些硬體安全檢查,按照周舸的介紹說,有了Nitro,AWS可以快速發展多種EC2實例。

前不久AWS發布的產品中,EC2 Mac實例讓人眼前一亮,有人開玩笑說,「Mac滯銷了,救救蘋果吧」,有人說,「又少了一個買蘋果電腦的理由」。

在實際架構中,Mac Mini被直接放在機架里,另一端連的就是Nitro卡,接入了Nitro卡之後就意味著可以像別的EC2實例一樣,可以對接各種雲服務。

在Nitro卡的幫助下,AWS今年發布了許多新的實例,去年re:Invent的時候還只有270多種實例,而現在有了400個實例,Nitro的貢獻很大。在Nitro的幫助下,AWS可以提供支持包括AMD、Intel和ARM在內的多個計算平台。

處理器晶片:ARM處理器Graviton的性價比

如果說蘋果發布搭載M1處理器的Mac電腦,讓PC廠商覺得ARM個人電腦有搞頭,那麼AWS在發布搭載Graviton處理器的伺服器的做法,則是讓ARM伺服器晶片廠商和ARM伺服器廠商備受鼓舞。

當國內ARM伺服器廠商還在強調跑安卓虛擬機的優勢的時候,暴露出的是應用場景發展匱乏的根本性問題。

而當看到Graviton實例能支撐包括Web場景,包括MySQL、PostGresql等場景時,才真正看到了ARM伺服器真正的用武之地,ARM發展誠可期待。

從周舸的介紹中可以看出來AWS要發展ARM的必要性:

比如在Web網站場景中,用戶需要的是更強的IO性能,如果是原來的處理器平台,有許多CPU資源被浪費了,如果改用ARM處理器,則可以省下很多成本。

看一個數字:第一代Graviton靠這一特性能節省40%的成本。

Graviton2推出的時候,AWS對處理器架構有了更深入的思考。

周舸解釋說,多核以及多線程技術固然有優勢,但並不是所有應用都需要,通用處理器發展了這麼多年,既要發展多核多線程,也要照顧那些不需要多核多線程的應用,這使得架構會很複雜,會有很多功能模塊,成本會很高,用不到的時候會造成浪費。


而Graviton2沒什麼歷史負擔,用化繁為簡的思路來看,只強調構建好多核能力,而不考慮再構建超線程的能力,比如類似SMT的那種超線程技術。

實測數據發現,Graviton2即使是在跑資料庫這種重型工作負載的時候,仍有非常優秀的表現,下圖是Postgres TPC HammerDB的測試數據。

採用Graviton2的M6g實例與採用至強處理器的M5實例相比,同等線程數不用超線程的M6g性能表現要比用超線程的M5要強,性能全面壓制。

要注意的是,採用了超線程技術的M5實例在48線程之後,64線程到96線程,再增加線程數性能增長很小,可以說是SMT的瓶頸了,而M6g則大概繼續保持線性增長。

如果覺得物理內核對比超線程不公平,那麼可以比性價比,實際上,M6g的性價比要高於M5實例(大約30%-40%)。

如果用戶有運行在ARM上的實例,那M6g將是非常理想的選擇,周舸也表示,有很多在Linux上面跑的程序都可以快速、簡單的轉到Graviton上面去,用起來並不難。

目前,國外以及國內很多用戶都用上了Graviton處理器支撐的實例,既包括Nginx Web伺服器類基礎的,也包括MySQL和Redis資料庫類以及HPC、大數據等IO密集型場景中,應用類型還是挺豐富的。

多元化的算力是必然趨勢,隨著應用的深入,相信ARM架構會獲得更進一步的發展。

現在看來,AWS應該算的上是ARM陣營的一面旗幟。

--------

PS:剛發現AWS在B站發了視頻,有興趣的朋友可以學習下,翻譯的字幕也還湊活可以看。

https://b23.tv/zWYgXI

關鍵字: