雲廠商(超大規模資料中心)是伺服器廠商又愛又恨的客戶,早在幾年前,雲廠商要求定製化伺服器,去掉不用的元件,因為採購規模很大,所以還可以進一步壓價,這使得部分強調高價值的伺服器廠商直接放棄了這部分市場。
而現在,隨著規模的增長,考慮到規模經濟效應,越來越多的廠商開始考慮定製晶片,甚至自己研發晶片,這其中,亞馬遜雲服務(AWS)絕對是先鋒式的存在,自研晶片不僅降低了成本,還能成為競爭中的有力武器。
最近,AWS大中華區產品部計算與儲存總監周舸介紹了AWS在晶片定製化方面的一些細節。
Nitro:能把各種硬體(包括Mac Mini)變成EC2例項的神器
AWS是雲廠商裡較早(可能是最早)自行設計晶片的,其根本的出發點還是要用上自己真正適合的東西,在我看來,Nitro是AWS主機區別於友商的一大因素。
AWS從2013年開始用Nitro卡,業內部分技術實力比較強的雲廠商也於近年來推出了類似方案。
2020年,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單核單執行緒,執行緒間不爭搶Cache,大Cache,效能穩的一批
而Graviton2沒什麼歷史負擔,用化繁為簡的思路來看,只強調構建好多核能力,而不考慮再構建超執行緒的能力,比如類似SMT的那種超執行緒技術。
實測資料發現,Graviton2即使是在跑資料庫這種重型工作負載的時候,仍有非常優秀的表現,下圖是Postgres TPC HammerDB的測試資料。
採用Graviton2的M6g例項與採用至強處理器的M5例項相比,同等執行緒數不用超執行緒的M6g效能表現要比用超執行緒的M5要強,效能全面壓制。
要注意的是,採用了超執行緒技術的M5例項在48執行緒之後,64執行緒到96執行緒,再增加執行緒數效能增長很小,可以說是SMT的瓶頸了,而M6g則大概繼續保持線性增長。
相同成本比效能,還是m6g贏
如果覺得物理核心對比超執行緒不公平,那麼可以比價效比,實際上,M6g的價效比要高於M5例項(大約30%-40%)。
如果使用者有執行在ARM上的例項,那M6g將是非常理想的選擇,周舸也表示,有很多在Linux上面跑的程式都可以快速、簡單的轉到Graviton上面去,用起來並不難。
目前,國外以及國內很多使用者都用上了Graviton處理器支撐的例項,既包括Nginx Web伺服器類基礎的,也包括MySQL和Redis資料庫類以及HPC、大資料等IO密集型場景中,應用型別還是挺豐富的。
能效高:Graviton單位能耗釋放的效能是x86的兩三倍
多元化的算力是必然趨勢,隨著應用的深入,相信ARM架構會獲得更進一步的發展。
現在看來,AWS應該算的上是ARM陣營的一面旗幟。
--------
PS:剛發現AWS在B站發了影片,有興趣的朋友可以學習下,翻譯的字幕也還湊活可以看。
https://b23.tv/zWYgXI