日前世界知名CDN廠商Cloudflare公布了自己的新一代服務(wù)器架構(gòu)GenX。作為技術(shù)最先進的CDN加速廠商,Cloudflare以自己特有的任播(Anycast)技術(shù)實現(xiàn)全球服務(wù)網(wǎng)絡(luò)上每臺服務(wù)器都可以運行每項服務(wù)。其安全防御方面也做的非常棒,基于1.1.1.1的公共DNS能抵御全球最大規(guī)模的DDOS攻擊。本文我們一起來學(xué)習(xí)Cloudflare的新一代服務(wù)器架構(gòu)GenX
任播服務(wù)網(wǎng)絡(luò)
Cloudflare設(shè)計并構(gòu)建了遍布全球的服務(wù)網(wǎng)絡(luò),可以夠快速,廉價地增加容量。允許任意城市(200個城市)中的每臺服務(wù)器運行任何服務(wù)。可以實現(xiàn)服務(wù)網(wǎng)絡(luò)上實現(xiàn)用戶服務(wù)和流量的自動切換和轉(zhuǎn)移。服務(wù)網(wǎng)絡(luò)使用通過標(biāo)準(zhǔn)的商品硬件,管理系統(tǒng)可以實現(xiàn)對服務(wù)網(wǎng)絡(luò)中開發(fā)人員代碼和客戶代碼的自動部署和執(zhí)行,用戶無需關(guān)注底層硬件和軟件架構(gòu)。
傳統(tǒng)的服務(wù)網(wǎng)絡(luò)構(gòu)建方法是使用專用服務(wù)器來運行多個分散的網(wǎng)絡(luò),這些專用服務(wù)器旨在運行特定功能,例如防火墻,DDoS保護或工作站等。但是這種方法會導(dǎo)致資源浪費和閑置,并極大的降低對硬件升級和采購的靈活性。
而使用統(tǒng)一單一的硬件架構(gòu)可以同時提供安全性和性能優(yōu)勢,還可以提供自定制等和采購等方面的靈活性。
Cloudflare服務(wù)網(wǎng)絡(luò)實現(xiàn)將Web請求路由到最近的數(shù)據(jù)中心,從而提高性能并最大程度地抵御攻擊。
選擇了數(shù)據(jù)中心后,Cloudflare用自定義負(fù)載平衡系統(tǒng)Unimog來動態(tài)平衡不同代服務(wù)器之間的請求。
Cloudflare服務(wù)網(wǎng)絡(luò)可以不同層次上進行負(fù)載平衡:城市之間,城市間的物理部署之間,外部公網(wǎng)端口之間,內(nèi)部光纜之間,服務(wù)器之間以及服務(wù)器內(nèi)的邏輯CPU線程之間。
隨著需求的增長,可以通過任意在全球可用資源池中通過簡單添加新的服務(wù)器,網(wǎng)絡(luò)接入點(PoP)或新的城市實現(xiàn)進行擴容。
當(dāng)出現(xiàn)有服務(wù)器組件出現(xiàn)硬件故障,可以對其服務(wù)優(yōu)先級降低并從資源池中刪除。然后又由維護團隊批量進行修復(fù)。
Cloudflare服務(wù)架構(gòu)體系下,全球200個城市中任意數(shù)據(jù)中心都不用專門的運維人員來維護,而只需依靠托管設(shè)備的ISP(或數(shù)據(jù)中心)機房運維就可以完成所有任務(wù)。
CloudflareGenX架構(gòu)
Cloudflare的第十代服務(wù)器GenX已經(jīng)在美國主要城市的數(shù)據(jù)中心已經(jīng)上線部署,并爭相全球范圍內(nèi)數(shù)據(jù)中心上線中。同上一代服務(wù)器構(gòu)架相比,請求數(shù)可增加三分之一多,而成本可大幅降低。CPU每個內(nèi)核的額定TDP(散熱設(shè)計功耗)降低四分之一,L3緩存未命中率可降低一半,NGINXp99延遲降低也能降低一半。更多的性能測試數(shù)據(jù)見下面部分。
如此大幅度性能提高主要來源于新一代服務(wù)器架構(gòu)中排除了英特爾,而是基于AMD第二代霄龍EPYC的Rome架構(gòu)。
CPU
CPU效率是Cloudflare服務(wù)器設(shè)計中最重要的部分,在大負(fù)載的Cloudflare服務(wù)網(wǎng)絡(luò),CPU是最大的瓶頸。Cloudflare通過軟件堆棧,可以對其核心很方面的擴容,因此CPU頻率和功耗是需要考慮的最重要參數(shù)。GenX架構(gòu)中選擇了單插槽配置的AMDEPYC7642處理器。該CPU具有48核(96個線程),基本時鐘速度為2.4GHz,L3高速緩存為256MB。盡管額定功率(225W)看起來有點高,對比9代服務(wù)器中的組合TDP的功耗更優(yōu)勢,而且可以實現(xiàn)更高的CPU性能。比我們上一代使用的雙插槽高核心數(shù)英特爾處理器(Skylake和CascadeLake)要強大得多。防火墻到工作站,最繁重的工作負(fù)載通常需要更大的計算量,因此算力的提高是新一代服務(wù)器帶來的更大優(yōu)勢。
GenX服務(wù)器經(jīng)過精心設(shè)計,額外帶有一個空PCIe插槽,可以在必要時添加額外板卡,比如通過GPU,F(xiàn)PGA,SmartNIC,定制ASIC,TPU等來按需來增加。
內(nèi)存,存儲和網(wǎng)絡(luò)
由于需要的最大的瓶頸在于CPU,因此GenX在RAM和SSD等其他硬件部分組件方面升級的幅度相對較小。
內(nèi)存上,繼續(xù)使用256GBRAM,與上一代產(chǎn)品持平,但使用了更高額定頻率的2933MHz。
存儲方面,仍然配備了大約3TB的存儲空間,使用3x1TB的NVME閃存,同時支持更高的可用IOPS和更高的耐用性,支持使用LUKS進行全盤加密,而不會受到損失。
網(wǎng)卡,繼續(xù)使用了Mellanox2x25GNIC。
機箱的大小減少了為簡單的1U尺寸,用來減輕數(shù)據(jù)中心的運行過程中的重量,并減少錯誤。
基準(zhǔn)測試
Cloudflare工程團隊在采用新一代服務(wù)架構(gòu)之前,對CPU做了一些基準(zhǔn)測試,我們來看下結(jié)果。
CascadeLakeVSEPYC
Cloudflare選擇英特爾CascadeLake和AMD第二代EPYC處理器,在功耗和性能之間進行了對比測試。結(jié)果AMDEPYC7642CPU排名第一。大多數(shù)CascadeLake處理器在所有內(nèi)核之間共享每個內(nèi)核1.375MiBL3緩存。在經(jīng)濟方面,AMD第二代EPYC處理器的起始價格為每個內(nèi)核4MiB。AMDEPYC7642是一個獨特的SKU,因為它在其48個內(nèi)核上共享256MiB的L3緩存。在每個內(nèi)核旁邊都有這么大的L3緩存和大約5.33MiB的高速緩存,所以性能更高。
隨著第二代EPYC的推出,傳統(tǒng)的緩存布局也發(fā)生了變化,第二代EPYC是AMD使用多芯片模塊(MCM)設(shè)計的副產(chǎn)品。256個MiBL3高速緩存由8個單獨的芯片或由2個內(nèi)核復(fù)合體(CCX)形成的核心復(fù)合體芯片(CCD)組成,每個CCX包含16個MiBL3高速緩存。
模擬環(huán)境測試
Cloudflare的生產(chǎn)環(huán)境流量具有持續(xù)工作量的許多特征,這些特征通常不會導(dǎo)致工作頻率發(fā)生較大變化,也不會進入空閑時間段。測試時候選擇了一種模擬流量模式,使用用HTTPS的Cached10KiBpng。來評估CPU的最大吞吐量或每秒請求數(shù)(RPS),這是要評估的關(guān)鍵指標(biāo)之一。測試中沒有禁用IntelTurboBoost和AMDPrecisionBoost,也沒有測量每秒請求,每秒退休指令(IPS),L3緩存未命中率和持續(xù)工作頻率時的匹配CPU頻率。
與第9代2PIntelXeonPlatinum6162服務(wù)器相比,1PAMD2ndGenEPYC7642服務(wù)器領(lǐng)先,每秒處理的請求多50%。
基于持續(xù)的工作量,應(yīng)該以高于基本時鐘的持續(xù)工作頻率結(jié)束。AMDEPYC7642的工作頻率或處理器可使用的周期數(shù)比IntelXeonPlatinum6162頻率高出約20%,這可以解釋上面RPS增加一半的。
生產(chǎn)環(huán)境測試
在生成環(huán)境中最主要的瓶頸似乎是高速緩存,由于L3高速緩存未命中率降低,每秒請求數(shù)量以及處理請求的時間都有了顯著提高。測試的數(shù)據(jù)是在第7代到第9代服務(wù)器之間存在的某個時間點收集。在將基于第二代EPYC的GenX用于生產(chǎn)環(huán)境后,結(jié)果能夠與之前實驗室模擬的結(jié)果非常相似。盡管每秒的請求數(shù)RPS與模擬結(jié)果并不完全一致,但是AMDEPYC服務(wù)器的性能仍然優(yōu)于所有以前的產(chǎn)品,包括性能比IntelGen9服務(wù)器高出36%。
持續(xù)的工作頻率幾乎與模擬測試結(jié)果相同。
由于每秒的請求數(shù)低于預(yù)期,因此隨著時間的推移,看到更少的指令退出使用以及更高的L3緩存未命中率,但仍保持了第9代的領(lǐng)先優(yōu)勢,性能提高了29%。