Cloudflare, onuncu nesil uç sunucular için AMD'nin işlemcilerini seçti

Cloudflare, onuncu nesil uç sunucular için AMD'nin işlemcilerini seçti

Her gün bir milyardan fazla benzersiz IP adresi Cloudflare Ağı üzerinden geçmektedir; saniyede 11 milyondan fazla HTTP isteğine hizmet ediyor; İnternet nüfusunun %100'ine 95 ms yakınlıkta bulunuyor. Ağımız 200'dan fazla ülkede 90 şehre yayılıyor ve mühendis ekibimiz son derece hızlı ve güvenilir bir altyapı inşa etti.

İşimizden büyük gurur duyuyoruz ve İnternet'in daha iyi ve daha güvenli bir yer olmasına yardımcı olmaya kararlıyız. Cloudflare'in donanım mühendisleri, performansını en üst düzeye çıkarmak için en iyi donanımı anlamak ve seçmek için sunucular ve bileşenleri hakkında derin bir anlayışa sahiptir.

Yazılım yığınımız yüksek bilgi işlem yükünü yönetir ve yüksek oranda CPU'ya bağımlıdır; bu da mühendislerimizin yığının her düzeyinde Cloudflare'in verimliliğini ve güvenilirliğini sürekli olarak optimize etmesini gerektirir. Sunucu tarafında işlem gücünü artırmanın en kolay yolu CPU çekirdeği eklemektir. Bir sunucu ne kadar çok çekirdek sığdırabilirse o kadar çok veri işleyebilir. Bu bizim için önemlidir çünkü ürünlerimizin ve müşterilerimizin çeşitliliği zamanla artmaktadır ve isteklerin artması, sunuculardan daha yüksek performans alınmasını gerektirmektedir. Performanslarını artırmak için çekirdeklerin yoğunluğunu artırmamız gerekiyordu ve biz de tam olarak bunu başardık. Aşağıda, 2015'ten bu yana konuşlandırdığımız sunucuların işlemcilerine ilişkin, çekirdek sayısı da dahil olmak üzere ayrıntılı veriler sunuyoruz:

-
Gen 6
Gen 7
Gen 8
Gen 9

Başlarken
2015
2016
2017
2018

işlemci
Intel Xeon E5-2630 v3
Intel Xeon E5-2630 v4
Intel Xeon Gümüş 4116
Intel Xeon Platin 6162

Fiziksel çekirdekler
X 2 8
X 2 10
X 2 12
X 2 24

TDP
2 X 85W
2 X 85W
2 X 85W
2 X 150W

Çekirdek başına TDP
10.65W
8.50W
7.08W
6.25W

2018 yılında Gen 9 ile sunucu başına toplam çekirdek sayısında büyük bir sıçrama yaptık. Çevresel etki, 33. nesle kıyasla %8 oranında azaltıldı ve bu da bize raf başına hacmi ve bilgi işlem gücünü artırma fırsatı verdi. Isı dağıtımı için tasarım gereksinimleri (Termal Tasarım Gücü, TDP) enerji verimliliğimizin de zaman içinde arttığını vurgulamak için zikredilmektedir. Bu gösterge bizim için önemli: Öncelikle atmosfere daha az karbon salmak istiyoruz; ikincisi veri merkezlerinin enerjisinden en iyi şekilde yararlanmak istiyoruz. Ama çabalamamız gereken bir şey olduğunu biliyoruz.

Ana tanımlayıcı ölçütümüz watt başına istek sayısıdır. Çekirdek ekleyerek saniyedeki istek sayısını artırabiliriz ancak güç bütçemiz dahilinde kalmamız gerekiyor. Seçili güç dağıtım modüllerimizle birlikte bize her sunucu rafı için belirli bir üst limit veren veri merkezi güç altyapısı ile sınırlıyız. Sunucuların bir rafa eklenmesi güç tüketimini artırır. Raf başına enerji sınırını aşarsak ve yeni raflar eklemek zorunda kalırsak işletme maliyetleri önemli ölçüde artacaktır. Aynı güç tüketimi aralığında kalarak işlem gücünü artırmamız gerekiyor; bu da temel ölçütümüz olan watt başına talebi artıracaktır.

Tahmin edebileceğiniz gibi tasarım aşamasında enerji tüketimini dikkatle inceledik. Yukarıdaki tablo, eğer çekirdek başına TDP mevcut nesilden daha yüksekse, daha fazla enerji tüketen CPU'ları konuşlandırarak zaman kaybetmememiz gerektiğini gösteriyor; bu, ölçütümüz olan watt başına taleplerimizi olumsuz yönde etkileyecektir. Piyasadaki X neslimiz için hazır sistemleri dikkatle inceledik ve karar verdik. 48 çekirdekli Intel Xeon Platinum 6162 çift soketli tasarımımızdan 48 çekirdekli AMD EPYC 7642 tek soketli tasarımımıza geçiyoruz.

Cloudflare, onuncu nesil uç sunucular için AMD'nin işlemcilerini seçti

-
Intel
AMD

işlemci
Xeon Platin 6162
EPYC 7642

mikro mimari
"Skylake"
"Zen 2"

Kod adı
“Skylake SP”
"Roma"

Süreç teknolojisi
14nm
7nm

çekirdek
X 2 24
48

frekans
1.9 GHz
2.4 GHz

L3 Önbellek/soket
24x1.375MiB
16x16MiB

Bellek/soket
6 kanal, DDR4-2400'e kadar
8 kanal, DDR4-3200'e kadar

TDP
2 X 150W
225W

PCIe/soket
48 şerit
128 şerit

ISA
x86-64
x86-64

Spesifikasyonlardan, AMD çipinin TDP'yi düşürürken aynı sayıda çekirdeği korumamıza izin vereceği açıktır. 9. nesil çekirdek başına 6,25 W TDP'ye sahipti ve X. nesil 4,69 W olacak. %25 oranında azaltıldı. Artan frekans ve belki de tek soketli daha basit tasarım sayesinde AMD çipinin pratikte daha iyi performans göstereceği varsayılabilir. Şu anda AMD'nin ne kadar daha iyi performans göstereceğini görmek için çeşitli testler ve simülasyonlar yürütüyoruz.

Şimdilik TDP'nin, sunucu tasarımının ve CPU seçiminin ilk aşamalarında kullandığımız, üretici spesifikasyonlarından basitleştirilmiş bir ölçüm olduğunu belirtelim. Hızlı bir Google araması, AMD ve Intel'in TDP'yi tanımlama konusunda farklı yaklaşımlara sahip olduğunu ve bu durumun spesifikasyonu güvenilmez hale getirdiğini ortaya koyuyor. Gerçek CPU güç tüketimi ve daha da önemlisi sunucu güç tüketimi, nihai kararımızı verirken gerçekten kullandığımız şeydir.

Ekosistem hazırlığı

Bir sonraki işlemcimizi seçme yolculuğumuza başlamak için, yazılım yığınımıza ve hizmetlerimize (C, LuaJIT ve Go ile yazılmış) uygun, farklı üreticilere ait geniş bir CPU yelpazesine baktık. Hızı ölçmek için bir takım araçları zaten ayrıntılı olarak tanımladık. blog makalelerimizden birinde. Bu durumda aynı seti kullandık; bu, CPU'nun verimliliğini makul bir sürede değerlendirmemize olanak tanıyor, ardından mühendislerimiz programlarımızı belirli bir işlemciye uyarlamaya başlayabilir.

Çeşitli çekirdek sayılarına, yuva sayılarına ve frekanslara sahip çeşitli işlemcileri test ettik. Bu makale neden AMD EPYC 7642'de karar kıldığımızla ilgili olduğundan, bu blogdaki tüm grafikler AMD işlemcilerin Intel Xeon Platinum 6162 ile karşılaştırıldığında nasıl performans gösterdiğine odaklanıyor. bizim 9. nesil.

Sonuçlar, her işlemci çeşidine sahip tek bir sunucunun ölçümlerine karşılık gelir; yani Intel'den iki adet 24 çekirdekli işlemci veya AMD'den bir adet 48 çekirdekli işlemci (iki soketli Intel için sunucu ve bir soketli AMD EPYC için sunucu) . BIOS'ta çalışan sunuculara karşılık gelen parametreleri ayarlıyoruz. Bu, AMD için 3,03 GHz ve Intel için 2,5 GHz'dir. Büyük ölçüde basitleştirirsek, aynı sayıda çekirdekle AMD'nin Intel'den %21 daha iyi performans göstermesini bekliyoruz.

kriptografi

Cloudflare, onuncu nesil uç sunucular için AMD'nin işlemcilerini seçti

Cloudflare, onuncu nesil uç sunucular için AMD'nin işlemcilerini seçti

AMD için umut verici görünüyor. Açık anahtar şifrelemesinde %18 daha iyi performans gösteriyor. Simetrik bir anahtarla AES-128-GCM şifreleme seçeneklerini kaybeder ancak genel olarak karşılaştırılabilir bir performans gösterir.

sıkıştırma

Uç sunucularda bant genişliğinden tasarruf etmek ve içerik dağıtım hızını artırmak için çok sayıda veriyi sıkıştırıyoruz. Verileri zlib ve brotli C kütüphanelerinden aktarıyoruz. Tüm testler bellekteki blog.cloudflare.com HTML dosyasında gerçekleştirildi.

Cloudflare, onuncu nesil uç sunucular için AMD'nin işlemcilerini seçti

Cloudflare, onuncu nesil uç sunucular için AMD'nin işlemcilerini seçti

AMD, gzip kullanırken ortalama %29 kazandı. Brotli durumunda, dinamik sıkıştırma için kullandığımız kalite 7 testlerinde sonuçlar daha da iyidir. Brotli-9 testinde keskin bir düşüş var - bunu Brotli'nin çok fazla bellek tüketmesi ve önbelleği doldurmasıyla açıklıyoruz. Ancak AMD büyük bir farkla kazanıyor.

Hizmetlerimizin çoğu Go'da yazılmıştır. Aşağıdaki grafiklerde, dize kitaplığını kullanarak Go'da RegExp ile 32 KB'lik satırlarda kriptografi ve sıkıştırma hızını iki kez kontrol ediyoruz.

Kriptografiye git

Cloudflare, onuncu nesil uç sunucular için AMD'nin işlemcilerini seçti

Sıkıştırmaya Git

Cloudflare, onuncu nesil uç sunucular için AMD'nin işlemcilerini seçti

Cloudflare, onuncu nesil uç sunucular için AMD'nin işlemcilerini seçti

Normal ifadeye git

Cloudflare, onuncu nesil uç sunucular için AMD'nin işlemcilerini seçti

Cloudflare, onuncu nesil uç sunucular için AMD'nin işlemcilerini seçti

Dizelere Git

Cloudflare, onuncu nesil uç sunucular için AMD'nin işlemcilerini seçti

AMD, Go ile yapılan tüm testlerde %256 geride olan ECDSA P38 Sign dışında daha iyi performans gösteriyor; C'de %24 daha iyi performans gösterdiği göz önüne alındığında bu garip bir durum. Orada neler olduğunu anlamaya değer. Genel olarak AMD pek kazanamıyor ancak yine de en iyi sonuçları gösteriyor.

LuaJIT

Stack'ta sıklıkla LuaJIT kullanıyoruz. Bu, Cloudflare'in tüm parçalarını bir arada tutan yapıştırıcıdır. AMD'nin burada da kazanmasından mutluyuz.

Genel olarak testler, EPYC 7642'nin iki Xeon Platinum 6162'den daha iyi performans gösterdiğini gösteriyor. AMD, AES-128-GCM ve Go OpenSSL ECDSA-P256 Sign gibi birkaç testte kaybediyor ancak diğer tüm testlerde ortalama olarak kazanıyor %25'i.

İş Yükü Simülasyonu

Hızlı testlerimizin ardından sunucuları, yazılım uç yığınına sentetik bir yükün uygulandığı başka bir simülasyon seti üzerinden çalıştırdık. Burada, gerçek işte karşılaşılabilecek farklı istek türlerine sahip bir senaryo iş yükünü simüle ediyoruz. İstekler veri hacmine, HTTP veya HTTPS protokollerine, WAF kaynaklarına, Çalışanlara ve diğer birçok değişkene göre değişiklik gösterir. Aşağıda en sık karşılaştığımız istek türleri için iki CPU'nun veriminin karşılaştırması bulunmaktadır.

Cloudflare, onuncu nesil uç sunucular için AMD'nin işlemcilerini seçti

Grafikteki sonuçlar, x ekseninde 9 değerine normalize edilmiş 1,0. nesil Intel tabanlı makinelerin temel çizgisine göre ölçülmüştür. Örneğin HTTPS üzerinden 10 KiB'lik basit istekler aldığımızda AMD'nin saniye başına istek konusunda Intel'den 1,5 kat daha iyi performans gösterdiğini görebiliyoruz. AMD bu testlerde ortalama olarak Intel'den %34 daha iyi performans gösterdi. Tek bir AMD EPYC 7642 için TDP'nin 225 W ve iki Intel işlemci için 300 W olduğu göz önüne alındığında, "watt başına istek" açısından AMD'nin Intel'den 2 kat daha iyi sonuçlar verdiği ortaya çıkıyor!

Bu noktada, gelecekteki X Kuşağı CPU'larımız olarak AMD EPYC 7642 için tek soket seçeneğine zaten açıkça sıcak bakıyorduk.AMD EPYC sunucularının gerçek dünyadaki çalışmalarda nasıl performans göstereceğini görmek bizi çok ilgilendiriyordu ve hemen birkaç tanesini gönderdik. veri merkezlerinden bazılarına sunucular.

gerçek iş

İlk adım doğal olarak sunucuları gerçek koşullarda çalışmaya hazırlamaktı. Filomuzdaki tüm makineler aynı süreç ve hizmetlerle çalışır, bu da performansı doğru bir şekilde karşılaştırmak için mükemmel bir fırsat sunar. Çoğu veri merkezinde olduğu gibi, bizim de konuşlandırdığımız birden fazla nesil sunucumuz var ve her sınıfta yaklaşık olarak aynı nesil sunucuları içerecek şekilde sunucularımızı kümeler halinde topluyoruz. Bazı durumlarda bu, kümeler arasında farklılık gösteren geri dönüşüm eğrileriyle sonuçlanabilir. Ama bizimle değil. Mühendislerimiz CPU kullanımını tüm nesiller için optimize etti; böylece belirli bir makinenin CPU'sunun 8 çekirdeğe mi yoksa 24 çekirdeğe mi sahip olduğuna bakılmaksızın, CPU kullanımı genellikle geri kalanlarla aynı olur.

Cloudflare, onuncu nesil uç sunucular için AMD'nin işlemcilerini seçti

Grafik, kullanım benzerliği hakkındaki yorumumuzu göstermektedir - X Nesil sunucularda AMD CPU kullanımı ile 9. Nesil sunucularda Intel işlemci kullanımı arasında önemli bir fark yoktur. Bu, hem test hem de temel sunucuların eşit şekilde yüklendiği anlamına gelir . Harika. Sunucularımızda tam olarak bunun için çalışıyoruz ve adil bir karşılaştırma için buna ihtiyacımız var. Aşağıdaki iki grafik, sunucu düzeyinde bir CPU çekirdeği ve tüm çekirdekler tarafından işlenen isteklerin sayısını göstermektedir.

Cloudflare, onuncu nesil uç sunucular için AMD'nin işlemcilerini seçti
Çekirdek başına istekler

Cloudflare, onuncu nesil uç sunucular için AMD'nin işlemcilerini seçti
Sunucuya yapılan istekler

AMD'nin ortalama olarak %23 daha fazla istek işlediği görülüyor. Hiç de fena değil! Blogumuzda 9. Nesil performansını artırmanın yolları hakkında sık sık yazdık. Artık aynı sayıda çekirdeğe sahibiz ancak AMD daha az güçle daha fazla iş yapıyor. Çekirdek sayısı ve TDP spesifikasyonlarından AMD'nin daha yüksek enerji verimliliğiyle daha yüksek hız sağladığı hemen anlaşılıyor.

Ancak daha önce de belirttiğimiz gibi TDP standart bir spesifikasyon değildir ve tüm üreticiler için aynı değildir; o halde gelin gerçek enerji kullanımına bakalım. Sunucunun enerji tüketimini saniyedeki istek sayısına paralel olarak ölçerek aşağıdaki grafiği elde ettik:

Cloudflare, onuncu nesil uç sunucular için AMD'nin işlemcilerini seçti

Harcanan watt başına saniye başına talep esas alındığında, AMD işlemcilerle çalışan X Nesli sunucular %28 daha verimlidir. AMD'nin TDP'sinin %25 daha düşük olduğu göz önüne alındığında daha fazlası beklenebilir, ancak TDP'nin belirsiz bir özellik olduğu unutulmamalıdır. Tabandan çok daha yüksek frekanslarda AMD'nin gerçek güç tüketiminin belirtilen TDP ile neredeyse aynı olduğunu gördük; Intel'de bu yok. Bu, TDP'nin enerji tüketiminin güvenilir bir tahmini olmamasının bir başka nedenidir. 9. Nesil sunucularımızdaki Intel CPU'ları çok düğümlü bir sisteme entegre edilirken AMD CPU'ları standart 1U form faktörlü sunucularda çalışır. Çok düğümlü sunucuların düğüm başına daha az güç tüketimiyle daha fazla yoğunluk sağlaması gerektiğinden bu durum AMD'nin lehine değil, ancak AMD yine de düğüm başına güç tüketimi açısından Intel'i geride bıraktı.

Teknik özellikler, test simülasyonları ve gerçek dünya performansı arasındaki çoğu karşılaştırmada, 1P AMD EPYC 7642 yapılandırması 2P Intel Xeon 6162'den önemli ölçüde daha iyi performans gösterdi. Bazı durumlarda AMD %36'ya kadar daha iyi performans gösterebilir ve biz, optimizasyonla buna inanıyoruz. donanım ve yazılımla bu gelişmeyi sürekli olarak başarabiliriz.

AMD'nin kazandığı ortaya çıktı.

Ek grafikler, 99 saatlik bir süre boyunca NGINX'i çalıştıran ortalama gecikmeyi ve p24 gecikmesini gösterir. Ortalama olarak AMD'deki işlemler %25 daha hızlı çalıştı. p99'da günün saatine bağlı olarak %20-50 daha hızlı çalışır.

Sonuç

Cloudflare'in Donanım ve Performans mühendisleri, müşterilerimiz için en iyi sunucu yapılandırmasını belirlemek amacıyla önemli miktarda test ve araştırma yapar. Burada çalışmayı seviyoruz çünkü bunun gibi büyük sorunları çözebiliyoruz ve sunucusuz uç bilişim gibi hizmetlerle ve Magic Transit, Argo Tunnel ve DDoS koruması gibi bir dizi güvenlik çözümüyle sorunlarınızı çözmenize yardımcı olabiliriz. Cloudflare ağındaki tüm sunucular güvenilir bir şekilde çalışacak şekilde yapılandırılmıştır ve her yeni nesil sunucuyu her zaman bir öncekinden daha iyi hale getirmeye çalışıyoruz. X Kuşağı işlemciler söz konusu olduğunda AMD EPYC 7642'nin yanıt olduğuna inanıyoruz.

Geliştiriciler, Cloudflare Workers'ı kullanarak uygulamalarını dünya çapında genişleyen ağımıza dağıtırlar. Biz bulutta güvenliğe ve güvenilirliğe odaklanırken, müşterilerimizin de kod yazmaya odaklanmasına izin vermekten gurur duyuyoruz. Ve bugün, çalışmalarının ikinci nesil AMD EPYC işlemcileri çalıştıran Gen X nesil sunucularımıza dağıtılacağını duyurmaktan daha da mutluyuz.

Cloudflare, onuncu nesil uç sunucular için AMD'nin işlemcilerini seçti
EPYC 7642 işlemciler, kod adı "Rome" [Roma]

AMD'nin EPYC 7642'sini kullanarak performansımızı artırmayı ve ağımızı yeni şehirlere genişletmeyi kolaylaştırmayı başardık. Roma bir günde inşa edilmedi ama yakında çoğunuza daha yakın olacak.

Son birkaç yıldır Intel ve AMD'nin birçok x86 yongasının yanı sıra ARM işlemcileriyle denemeler yapıyoruz. Hep birlikte daha iyi bir İnternet kurabilmemiz için bu CPU üreticilerinin gelecekte de bizimle çalışmaya devam etmelerini bekliyoruz.

Kaynak: habr.com

Yorum ekle