Cloudflare memilih pemproses daripada AMD untuk pelayan kelebihan generasi kesepuluh

Cloudflare memilih pemproses daripada AMD untuk pelayan kelebihan generasi kesepuluh

Lebih daripada satu bilion alamat IP unik melalui Rangkaian Cloudflare setiap hari; ia menyediakan lebih daripada 11 juta permintaan HTTP sesaat; dia berada dalam 100ms daripada 95% daripada populasi internet. Rangkaian kami merangkumi 200 bandar di lebih 90 negara, dan pasukan jurutera kami telah membina infrastruktur yang sangat pantas dan boleh dipercayai.

Kami sangat berbangga dengan kerja kami dan komited untuk membantu menjadikan Internet tempat yang lebih baik dan selamat. Jurutera perkakasan Cloudflare mempunyai pemahaman mendalam tentang pelayan dan komponennya untuk memahami dan memilih perkakasan terbaik untuk memaksimumkan prestasinya.

Tindanan perisian kami mengendalikan pengkomputeran beban tinggi dan sangat bergantung kepada CPU, memerlukan jurutera kami untuk terus mengoptimumkan kecekapan dan kebolehpercayaan Cloudflare pada setiap peringkat tindanan. Di sisi pelayan, cara paling mudah untuk meningkatkan kuasa pemprosesan ialah dengan menambah teras CPU. Lebih banyak teras pelayan boleh muat, lebih banyak data yang boleh diproses. Ini penting kepada kami kerana kepelbagaian produk dan pelanggan kami semakin berkembang dari semasa ke semasa, dan pertumbuhan permintaan memerlukan peningkatan prestasi daripada pelayan. Untuk meningkatkan prestasi mereka, kami perlu meningkatkan ketumpatan teras - dan inilah yang kami capai. Di bawah ini kami menyediakan data terperinci tentang pemproses untuk pelayan yang telah kami gunakan sejak 2015, termasuk bilangan teras:

-
Jen 6
Jen 7
Jen 8
Jen 9

Bermula
2015
2016
2017
2018

CPU
Intel Xeon E5-2630 v3
Intel Xeon E5-2630 v4
Intel Xeon Silver 4116
Intel Xeon Platinum 6162

Teras fizikal
2 x 8
2 x 10
2 x 12
2 x 24

TDP
2 x 85W
2 x 85W
2 x 85W
2 x 150W

TDP setiap teras
10.65W
8.50W
7.08W
6.25W

Pada 2018, kami membuat lonjakan besar dalam jumlah teras setiap pelayan dengan Gen 9. Kesan alam sekitar telah dikurangkan sebanyak 33% berbanding generasi ke-8, memberikan kami peluang untuk meningkatkan volum dan kuasa pengkomputeran setiap rak. Keperluan reka bentuk untuk pelesapan haba (Kuasa Reka Bentuk Termal, TDP) disebut untuk menyerlahkan bahawa kecekapan tenaga kami juga telah meningkat dari semasa ke semasa. Penunjuk ini penting untuk kita: pertama, kita mahu mengeluarkan kurang karbon ke atmosfera; kedua, kami ingin menggunakan tenaga daripada pusat data dengan sebaiknya. Tetapi kita tahu bahawa kita mempunyai sesuatu untuk diperjuangkan.

Metrik penentu utama kami ialah bilangan permintaan setiap watt. Kami boleh meningkatkan bilangan permintaan sesaat dengan menambahkan teras, tetapi kami perlu kekal dalam belanjawan kuasa kami. Kami dihadkan oleh infrastruktur kuasa pusat data, yang, bersama-sama dengan modul pengagihan kuasa terpilih kami, memberikan kami had atas tertentu untuk setiap rak pelayan. Menambah pelayan pada rak meningkatkan penggunaan kuasa. Kos operasi akan meningkat dengan ketara jika kita melebihi had tenaga setiap rak dan perlu menambah rak baharu. Kami perlu meningkatkan kuasa pemprosesan sambil kekal dalam julat penggunaan kuasa yang sama, yang akan meningkatkan permintaan per watt, metrik utama kami.

Seperti yang anda duga, kami mengkaji penggunaan tenaga dengan teliti pada peringkat reka bentuk. Jadual di atas menunjukkan bahawa kita tidak sepatutnya membuang masa menggunakan lebih banyak CPU yang haus tenaga jika TDP setiap teras lebih tinggi daripada generasi semasa - ini akan memberi kesan negatif kepada metrik kami, permintaan per watt. Kami mengkaji dengan teliti sistem sedia untuk dijalankan untuk generasi X kami di pasaran dan membuat keputusan. Kami beralih daripada reka bentuk dwi-soket Intel Xeon Platinum 48 6162 teras kami kepada reka bentuk soket tunggal AMD EPYC 48 7642 teras.

Cloudflare memilih pemproses daripada AMD untuk pelayan kelebihan generasi kesepuluh

-
Intel
AMD

CPU
Xeon Platinum 6162
EPYC 7642

Seni bina mikro
"Skylake"
"Zen 2"

Nama kod
Skylake SP
β€œRom”

Proses teknikal
14nm
7nm

teras
2 x 24
48

kekerapan
1.9GHz
2.4GHz

L3 Cache/soket
24 x 1.375MiB
16 x 16MiB

Memori/soket
6 saluran, sehingga DDR4-2400
8 saluran, sehingga DDR4-3200

TDP
2 x 150W
225W

PCIe/soket
48 lorong
128 lorong

IALAH
x86-64
x86-64

Daripada spesifikasi, jelas bahawa cip dari AMD akan membolehkan kami mengekalkan bilangan teras yang sama semasa menurunkan TDP. Generasi ke-9 mempunyai TDP setiap teras sebanyak 6,25 W, dan generasi ke-X ialah 4,69 W. Dikurangkan sebanyak 25%. Terima kasih kepada kekerapan yang meningkat, dan mungkin reka bentuk yang lebih ringkas dengan satu soket, boleh diandaikan bahawa cip AMD akan berprestasi lebih baik dalam amalan. Kami sedang menjalankan pelbagai ujian dan simulasi untuk melihat sejauh mana prestasi AMD yang lebih baik.

Buat masa ini, mari kita ambil perhatian bahawa TDP ialah metrik yang dipermudahkan daripada spesifikasi pengeluar, yang kami gunakan pada peringkat awal reka bentuk pelayan dan pemilihan CPU. Carian Google pantas mendedahkan bahawa AMD dan Intel mempunyai pendekatan yang berbeza untuk mentakrifkan TDP, menjadikan spesifikasi tidak boleh dipercayai. Penggunaan kuasa CPU sebenar, dan lebih penting lagi penggunaan kuasa pelayan, adalah perkara yang kami benar-benar gunakan semasa membuat keputusan muktamad kami.

Kesediaan ekosistem

Untuk memulakan perjalanan kami untuk memilih pemproses kami yang seterusnya, kami melihat pelbagai jenis CPU daripada pengeluar berbeza yang sesuai untuk tindanan dan perkhidmatan perisian kami (ditulis dalam C, LuaJIT dan Go). Kami telah menerangkan secara terperinci satu set alat untuk mengukur kelajuan dalam salah satu artikel blog kami. Dalam kes ini, kami menggunakan set yang sama - ia membolehkan kami menilai kecekapan CPU dalam masa yang munasabah, selepas itu jurutera kami boleh mula menyesuaikan program kami kepada pemproses tertentu.

Kami menguji pelbagai pemproses dengan pelbagai kiraan teras, kiraan soket dan frekuensi. Memandangkan artikel ini adalah mengenai sebab kami menggunakan AMD EPYC 7642, semua carta dalam blog ini memfokuskan pada prestasi pemproses AMD berbanding Intel Xeon Platinum 6162 daripada generasi ke-9 kami.

Hasilnya sepadan dengan ukuran pelayan tunggal dengan setiap varian pemproses - iaitu, dengan dua pemproses 24 teras daripada Intel, atau dengan satu pemproses 48 teras daripada AMD (pelayan untuk Intel dengan dua soket dan pelayan untuk AMD EPYC dengan satu) . Dalam BIOS kami menetapkan parameter yang sepadan dengan pelayan yang sedang berjalan. Ini ialah 3,03 GHz untuk AMD dan 2,5 GHz untuk Intel. Memudahkan dengan sangat, kami menjangkakan bahawa dengan bilangan teras yang sama, AMD akan berprestasi 21% lebih baik daripada Intel.

Kriptografi

Cloudflare memilih pemproses daripada AMD untuk pelayan kelebihan generasi kesepuluh

Cloudflare memilih pemproses daripada AMD untuk pelayan kelebihan generasi kesepuluh

Nampak menjanjikan untuk AMD. Ia berprestasi 18% lebih baik pada kriptografi kunci awam. Dengan kunci simetri, ia kehilangan pilihan penyulitan AES-128-GCM, tetapi prestasi keseluruhannya setanding.

Pemampatan

Pada pelayan edge, kami memampatkan banyak data untuk menjimatkan lebar jalur dan meningkatkan kelajuan penghantaran kandungan. Kami menghantar data melalui perpustakaan C zlib dan brotli. Semua ujian dijalankan pada fail HTML blog.cloudflare.com dalam ingatan.

Cloudflare memilih pemproses daripada AMD untuk pelayan kelebihan generasi kesepuluh

Cloudflare memilih pemproses daripada AMD untuk pelayan kelebihan generasi kesepuluh

AMD menang dengan purata 29% apabila menggunakan gzip. Dalam kes brotli, hasilnya lebih baik pada ujian dengan kualiti 7, yang kami gunakan untuk pemampatan dinamik. Pada ujian brotli-9 terdapat penurunan mendadak - kami menerangkannya dengan fakta bahawa Brotli menggunakan banyak memori dan melimpahi cache. Walau bagaimanapun, AMD menang dengan margin yang besar.

Banyak perkhidmatan kami ditulis dalam Go. Dalam graf berikut, kami menyemak semula kelajuan kriptografi dan pemampatan dalam Go with RegExp pada baris 32 KB menggunakan perpustakaan rentetan.

Pergi kriptografi

Cloudflare memilih pemproses daripada AMD untuk pelayan kelebihan generasi kesepuluh

Pergi Mampatan

Cloudflare memilih pemproses daripada AMD untuk pelayan kelebihan generasi kesepuluh

Cloudflare memilih pemproses daripada AMD untuk pelayan kelebihan generasi kesepuluh

Pergi Regexp

Cloudflare memilih pemproses daripada AMD untuk pelayan kelebihan generasi kesepuluh

Cloudflare memilih pemproses daripada AMD untuk pelayan kelebihan generasi kesepuluh

Pergi Strings

Cloudflare memilih pemproses daripada AMD untuk pelayan kelebihan generasi kesepuluh

AMD berprestasi lebih baik dalam semua ujian dengan Go kecuali ECDSA P256 Sign, di mana ia ketinggalan 38% - yang pelik, memandangkan prestasinya 24% lebih baik dalam C. Berbaloi untuk memikirkan apa yang berlaku di sana. Secara keseluruhan, AMD tidak menang banyak, tetapi masih menunjukkan hasil yang terbaik.

LuaJIT

Kami sering menggunakan LuaJIT pada timbunan. Ini adalah gam yang memegang semua bahagian Cloudflare bersama-sama. Dan kami gembira kerana AMD menang di sini juga.

Secara keseluruhan, ujian menunjukkan bahawa EPYC 7642 berprestasi lebih baik daripada dua Xeon Platinum 6162. AMD kalah pada beberapa ujian - contohnya, AES-128-GCM dan Go OpenSSL ECDSA-P256 Sign - tetapi menang pada semua yang lain, secara purata sebanyak 25%.

Simulasi Beban Kerja

Selepas ujian pantas kami, kami menjalankan pelayan melalui satu lagi set simulasi di mana beban sintetik digunakan pada tindanan tepi perisian. Di sini kami mensimulasikan beban kerja senario dengan pelbagai jenis permintaan yang boleh ditemui dalam kerja sebenar. Permintaan berbeza dalam volum data, protokol HTTP atau HTTPS, sumber WAF, Pekerja dan banyak pembolehubah lain. Di bawah ialah perbandingan daya pemprosesan kedua-dua CPU untuk jenis permintaan yang paling kerap kami hadapi.

Cloudflare memilih pemproses daripada AMD untuk pelayan kelebihan generasi kesepuluh

Keputusan dalam carta diukur berdasarkan garis dasar mesin berasaskan Intel generasi ke-9, dinormalkan kepada nilai 1,0 pada paksi-x. Sebagai contoh, mengambil permintaan 10 KiB mudah melalui HTTPS, kita dapat melihat bahawa AMD melakukan 1,5 kali lebih baik daripada Intel dari segi permintaan sesaat. Secara purata, AMD melakukan 34% lebih baik daripada Intel untuk ujian ini. Memandangkan TDP untuk satu AMD EPYC 7642 ialah 225 W, dan untuk dua pemproses Intel ialah 300 W, ternyata dari segi "permintaan per watt" AMD menunjukkan hasil 2 kali lebih baik daripada Intel!

Pada ketika ini, kami sudah jelas condong ke arah pilihan soket tunggal untuk AMD EPYC 7642 sebagai CPU Gen X masa hadapan kami. Kami sangat berminat untuk melihat prestasi pelayan AMD EPYC dalam kerja dunia nyata, dan kami segera menghantar beberapa pelayan kepada beberapa daripada pusat data.

Kerja sebenar

Langkah pertama, secara semula jadi, adalah menyediakan pelayan untuk berfungsi dalam keadaan sebenar. Semua mesin dalam armada kami berfungsi dengan proses dan perkhidmatan yang sama, yang memberikan peluang terbaik untuk membandingkan prestasi dengan betul. Seperti kebanyakan pusat data, kami mempunyai beberapa generasi pelayan yang digunakan, dan kami mengumpulkan pelayan kami ke dalam kelompok supaya setiap kelas mengandungi pelayan yang lebih kurang generasi yang sama. Dalam sesetengah kes, ini boleh mengakibatkan lengkung kitar semula yang berbeza antara kelompok. Tetapi tidak dengan kami. Jurutera kami telah mengoptimumkan penggunaan CPU untuk semua generasi supaya tidak kira sama ada CPU mesin tertentu mempunyai 8 teras atau 24, penggunaan CPU secara amnya sama dengan yang lain.

Cloudflare memilih pemproses daripada AMD untuk pelayan kelebihan generasi kesepuluh

Graf menggambarkan ulasan kami tentang persamaan penggunaan - tiada perbezaan yang ketara antara penggunaan CPU AMD dalam pelayan generasi Gen X dan penggunaan pemproses Intel dalam pelayan generasi Gen 9. Ini bermakna kedua-dua pelayan ujian dan garis dasar dimuatkan secara sama rata . Hebat. Inilah yang kami perjuangkan dalam pelayan kami, dan kami memerlukan ini untuk perbandingan yang adil. Dua graf di bawah menunjukkan bilangan permintaan yang diproses oleh satu teras CPU dan semua teras di peringkat pelayan.

Cloudflare memilih pemproses daripada AMD untuk pelayan kelebihan generasi kesepuluh
Permintaan setiap teras

Cloudflare memilih pemproses daripada AMD untuk pelayan kelebihan generasi kesepuluh
Permintaan kepada pelayan

Dapat dilihat bahawa secara purata AMD memproses 23% lebih banyak permintaan. Boleh tahan juga! Kami sering menulis di blog kami tentang cara untuk meningkatkan prestasi Gen 9. Dan kini kami mempunyai bilangan teras yang sama, tetapi AMD melakukan lebih banyak kerja dengan kuasa yang lebih sedikit. Jelas daripada spesifikasi bilangan teras dan TDP bahawa AMD memberikan kelajuan yang lebih tinggi dengan kecekapan tenaga yang lebih besar.

Tetapi seperti yang telah kami nyatakan, TDP bukanlah spesifikasi standard dan ia tidak sama untuk semua pengeluar, jadi mari kita lihat penggunaan tenaga sebenar. Dengan mengukur penggunaan tenaga pelayan selari dengan bilangan permintaan sesaat, kami memperoleh graf berikut:

Cloudflare memilih pemproses daripada AMD untuk pelayan kelebihan generasi kesepuluh

Berdasarkan permintaan sesaat setiap watt yang dibelanjakan, pelayan Gen X yang dijalankan pada pemproses AMD adalah 28% lebih cekap. Seseorang boleh menjangkakan lebih banyak, memandangkan TDP AMD adalah 25% lebih rendah, tetapi harus diingat bahawa TDP adalah ciri yang tidak jelas. Kami telah melihat bahawa penggunaan kuasa sebenar AMD hampir sama dengan TDP yang dinyatakan pada frekuensi yang lebih tinggi daripada pangkalan; Intel tidak mempunyai itu. Ini adalah satu lagi sebab mengapa TDP bukan anggaran penggunaan tenaga yang boleh dipercayai. CPU daripada Intel dalam pelayan Gen 9 kami disepadukan ke dalam sistem berbilang nod, manakala CPU daripada AMD beroperasi dalam pelayan faktor bentuk 1U standard. Ini tidak memihak kepada AMD, kerana pelayan multinod sepatutnya memberikan ketumpatan yang lebih besar dengan penggunaan kuasa yang kurang bagi setiap nod, tetapi AMD masih mengatasi Intel dari segi penggunaan kuasa setiap nod.

Dalam kebanyakan perbandingan merentas spesifikasi, simulasi ujian dan prestasi dunia sebenar, konfigurasi 1P AMD EPYC 7642 menunjukkan prestasi yang lebih baik daripada 2P Intel Xeon 6162. Dalam sesetengah keadaan, AMD boleh berprestasi sehingga 36% lebih baik dan kami percaya bahawa dengan mengoptimumkan perkakasan dan perisian, kita boleh mencapai peningkatan ini secara berterusan.

Ternyata AMD menang.

Graf tambahan menunjukkan kependaman purata dan kependaman p99 yang menjalankan NGINX dalam tempoh 24 jam. Secara purata, proses pada AMD berjalan 25% lebih pantas. Pada p99 ia berjalan 20-50% lebih pantas bergantung pada masa hari.

Kesimpulan

Jurutera Perkakasan dan Prestasi Cloudflare melakukan sejumlah besar ujian dan penyelidikan untuk menentukan konfigurasi pelayan terbaik untuk pelanggan kami. Kami suka bekerja di sini kerana kami boleh menyelesaikan masalah besar seperti ini dan kami boleh membantu anda menyelesaikan masalah anda dengan perkhidmatan seperti pengkomputeran tepi tanpa pelayan dan pelbagai penyelesaian keselamatan seperti Transit Ajaib, Terowong Argo dan perlindungan DDoS. . Semua pelayan dalam rangkaian Cloudflare dikonfigurasikan untuk berprestasi dengan pasti, dan kami sentiasa cuba menjadikan setiap pelayan generasi seterusnya lebih baik daripada yang sebelumnya. Kami percaya AMD EPYC 7642 adalah jawapan untuk pemproses Gen X.

Menggunakan Cloudflare Workers, pembangun menggunakan aplikasi mereka pada rangkaian kami yang sedang berkembang di seluruh dunia. Kami berbangga untuk membenarkan pelanggan kami menumpukan pada menulis kod sementara kami memberi tumpuan kepada keselamatan dan kebolehpercayaan dalam awan. Dan hari ini kami lebih berbesar hati untuk mengumumkan bahawa kerja mereka akan digunakan pada pelayan generasi Gen X kami yang menjalankan pemproses AMD EPYC generasi kedua.

Cloudflare memilih pemproses daripada AMD untuk pelayan kelebihan generasi kesepuluh
Pemproses EPYC 7642, nama kod "Rom" [Rom]

Dengan menggunakan EPYC 7642 AMD, kami dapat meningkatkan prestasi kami dan menjadikannya lebih mudah untuk mengembangkan rangkaian kami ke bandar baharu. Rom tidak dibina dalam sehari, tetapi ia akan menjadi lebih dekat dengan ramai daripada anda.

Dalam beberapa tahun kebelakangan ini kami telah bereksperimen dengan banyak cip x86 daripada Intel dan AMD, serta pemproses daripada ARM. Kami menjangkakan pembuat CPU ini akan terus bekerjasama dengan kami pada masa hadapan supaya kita semua boleh membina Internet yang lebih baik bersama-sama.

Sumber: www.habr.com

Tambah komen