Cloudflare memilih prosesor AMD untuk server tepi generasi kesepuluh



Lebih dari satu miliar alamat IP unik melewati Jaringan Cloudflare setiap hari; Ini melayani lebih dari 11 juta permintaan HTTP per detik; terletak pada jarak tidak lebih dari 100 ms dari 95% populasi Internet. Jaringan kami menjangkau 200 kota di lebih dari 90 negara, dan tim teknik kami telah membangun infrastruktur yang sangat cepat dan andal.

Kami sangat bangga dengan pekerjaan kami dan berkomitmen untuk membantu menjadikan internet lebih baik dan lebih aman. Insinyur Cloudflare, yang pekerjaannya terkait dengan perangkat keras, berpengalaman dalam server dan komponennya untuk memahami dan memilih peralatan terbaik untuk memaksimalkan efisiensinya.

Tumpukan perangkat lunak kami menangani komputasi beban tinggi dan sangat bergantung pada kecepatan CPU, itulah sebabnya teknisi kami harus terus-menerus mengoptimalkan efisiensi dan keandalan Cloudflare di semua tingkat tumpukan. Di sisi server, cara termudah adalah meningkatkan daya komputasi dengan menambahkan core CPU. Semakin banyak inti yang Anda muat di server, semakin banyak yang dapat memproses data. Ini penting bagi kami, karena keragaman produk dan pelanggan kami tumbuh dari waktu ke waktu, dan pertumbuhan permintaan membutuhkan server untuk meningkatkan produktivitas. Untuk meningkatkan produktivitasnya, kami perlu meningkatkan kepadatan nuklei - dan inilah tepatnya yang telah kami capai. Di bawah ini kami memberikan detail data prosesor untuk server yang telah kami sebarkan sejak 2015, termasuk jumlah core:

---Kej 6Gen 7Gen 8Kej 9
Awal pekerjaan2015201620172018
CPUIntel Xeon E5-2630 v3Intel Xeon E5-2630 v4Intel Xeon Silver 4116Intel Xeon Platinum 6162
Core fisik2 x 82 x 102 x 122 x 24
TDP2 x 85W2 x 85W2 x 85W2 x 150W
TDP per inti10.65W8.50W7.08W6.25W


Pada tahun 2018, kami membuat lompatan besar dalam jumlah total core per server dengan generasi ke-9. Dampak lingkungan berkurang sebesar 33% dibandingkan dengan generasi ke-8, yang memberi kami kesempatan untuk meningkatkan volume dan daya komputasi per rak. Persyaratan desain Thermal Design Power (TDP) disebutkan untuk menekankan bahwa efisiensi energi kami juga telah berkembang seiring waktu. Indikator ini penting bagi kami: pertama, kami ingin memancarkan lebih sedikit karbon ke atmosfer; kedua, kami ingin memanfaatkan energi pusat data dengan sebaik-baiknya. Tetapi kita tahu apa yang harus kita perjuangkan.

Metrik penentu utama kami adalah jumlah permintaan per watt. Kita dapat meningkatkan jumlah permintaan per detik dengan menambahkan inti, tetapi kita harus tetap dalam anggaran energi kita. Kami dibatasi oleh infrastruktur daya pusat data, yang, bersama dengan modul distribusi energi pilihan kami, memberi kami batas atas tertentu untuk setiap rak server. Menambahkan server ke rak meningkatkan konsumsi daya. Biaya pengoperasian akan meningkat secara dramatis jika kita melampaui batas energi rak dan kita harus menambahkan rak baru. Kita perlu meningkatkan daya komputasi, tetap dalam kisaran energi yang sama, yang akan meningkatkan jumlah permintaan per watt - metrik utama kami.

Seperti yang sudah Anda duga, kami mempelajari konsumsi energi dengan hati-hati pada tahap desain. Tabel di atas menunjukkan bahwa kita tidak perlu membuang waktu untuk menggunakan lebih banyak CPU yang haus energi, jika TDP per inti lebih tinggi dari generasi saat ini - ini akan berdampak negatif pada metrik kami, jumlah permintaan per watt. Kami dengan cermat memeriksa sistem yang siap dioperasikan untuk Generasi X kami di pasar dan membuat keputusan. Kami bergerak dari sirkuit kami dengan 48 Intel Xeon Platinum 6162 core dan dua soket ke 48-core AMD EPYC 7642 dengan satu soket.



---IntelAMD
CPUXeon Platinum 6162EPYC 7642
Arsitektur Mikro"Skylake""Zen 2"
Nama kodeβ€œSkylake SP”"Roma"
Proses teknologi14nm7nm
Core2 x 2448
Frekuensi1,9 GHz2,4 GHz
L3 cache / socket24 x 1,375MiB16 x 16MiB
Memori / soket6 saluran, hingga DDR4-24008 saluran, hingga DDR4-3200
TDP2 x 150W225W
PCIe / soket48 jalur128 jalur
ADALAHx86-64x86-64


Dari spesifikasinya jelas bahwa chip dari AMD akan memungkinkan kami untuk meninggalkan jumlah core yang sama, menurunkan TDP. Pada generasi ke-9, TDP per inti adalah 6,25 watt, dan pada generasi X akan menjadi 4,69 watt. Penurunan 25%. Karena peningkatan frekuensi, dan, mungkin, rangkaian yang lebih sederhana dengan satu soket, kita dapat mengasumsikan bahwa chip AMD akan terbukti lebih baik dalam bisnis. Sementara kami sedang melakukan berbagai tes dan simulasi untuk memahami seberapa baik AMD akan melakukan.

Sementara itu, kami mencatat bahwa TDP adalah metrik yang disederhanakan dari spesifikasi pabrikan, yang kami gunakan pada tahap awal desain server dan pemilihan CPU. Pencarian Google cepat menunjukkan bahwa AMD dan Intel memiliki pendekatan yang berbeda untuk definisi TDP, itulah sebabnya spesifikasi ini tidak dapat diandalkan. Konsumsi daya CPU yang sebenarnya, dan, yang lebih penting, konsumsi daya server, adalah apa yang benar-benar kita gunakan ketika membuat keputusan akhir.

Kesiapan ekosistem


Pada awal perjalanan kami untuk memilih prosesor berikutnya, kami mempelajari berbagai macam CPU dari berbagai produsen yang cocok untuk tumpukan dan layanan perangkat lunak kami (ditulis dalam C, LuaJIT dan Go). Kami telah menjelaskan secara rinci seperangkat alat untuk mengukur kecepatan dalam sebuah artikel di blog kami . Dalam hal ini, kami menggunakan set yang sama - ini memungkinkan kami untuk mengevaluasi efektivitas CPU dalam waktu yang wajar, setelah itu teknisi kami dapat mulai menyesuaikan program kami ke prosesor tertentu.

Kami menguji berbagai prosesor dengan beragam inti, soket, dan frekuensi. Karena artikel ini menjelaskan mengapa kami memilih AMD EPYC 7642, semua grafik di blog ini fokus pada kinerja prosesor AMD dibandingkan dengan Intel Xeon Platinum 6162 darigenerasi ke-9 kami .

Hasilnya sesuai dengan pengukuran operasi satu server dengan masing-masing varian prosesor - yaitu, dengan dua prosesor 24-core dari Intel, atau dengan satu prosesor 48-inti dari AMD (server untuk Intel dengan dua soket dan server untuk AMD EPYC dengan satu). Di BIOS, kami mengatur parameter yang sesuai dengan server yang berfungsi. Ini adalah 3,03 GHz untuk AMD dan 2,5 GHz untuk Intel. Menyederhanakan sangat banyak, kami berharap bahwa dengan jumlah core yang sama AMD akan menunjukkan hasil 21% lebih baik dari Intel.

Kriptografi






Ini terlihat menjanjikan untuk AMD. Ini bekerja 18% lebih baik pada kriptografi kunci publik. Dengan kunci simetris, ia kehilangan untuk opsi enkripsi AES-128-GCM, tetapi secara umum itu menunjukkan dirinya sebanding.

Kompresi


Di server tepi, kami memampatkan banyak data untuk menghemat bandwidth dan meningkatkan kecepatan pengiriman konten. Kami melewati data melalui pustaka zlib dan brotli C. Semua tes berlangsung di file HTML blog.cloudflare.com dalam memori.





AMD memenangkan rata-rata 29% saat menggunakan gzip. Dalam kasus brotli, hasilnya bahkan lebih baik pada tes dengan kualitas 7, yang kami gunakan untuk kompresi dinamis. Penurunan tajam terjadi pada tes brotli-9 - kami mengaitkan ini dengan fakta bahwa Brotli mengkonsumsi banyak memori dan melimpah cache. Namun, AMD menang dengan selisih yang lebar.

Banyak layanan kami ditulis dalam Go. Dalam grafik berikut, kami memeriksa kembali tingkat kriptografi dan kompresi on Go dengan RegExp pada baris 32 KB menggunakan pustaka string.

Pergi kriptografi




Kompresi pergi






Pergi regexp






Pergi string




AMD menunjukkan hasil terbaik dalam semua tes dengan Go kecuali ECDSA P256 Sign, di mana ia berada 38% di belakang - yang aneh, dengan mempertimbangkan bahwa itu menunjukkan hasil 24% lebih baik di C. Layak untuk mencari tahu apa yang terjadi di sana. Namun secara umum, AMD tidak menang banyak, tetapi masih menunjukkan hasil terbaik.

Luajit


Kami sering menggunakan LuaJIT di tumpukan. Ini adalah lem yang menahan semua bagian Cloudflare. Dan kami senang AMD menang di sini.

Secara umum, tes menunjukkan bahwa EPYC 7642 berkinerja lebih baik daripada dua Xeon Platinum 6162. AMD kalah pada sepasang tes - misalnya, AES-128-GCM dan Go OpenSSL ECDSA-P256 Sign - namun, ia menang pada semua yang lain, rata-rata dengan 25% .

Simulasi beban kerja


Setelah pengujian cepat kami, kami menjalankan server melalui serangkaian simulasi lain di mana beban sintetis diterapkan ke tumpukan tepi perangkat lunak. Di sini kami mensimulasikan beban kerja skrip dengan berbagai jenis kueri yang dapat ditemukan dalam karya nyata. Permintaan bervariasi dalam hal volume data, protokol HTTP atau HTTPS, WAF, Sumber pekerja, dan lainnya dari berbagai variabel. Di bawah ini adalah perbandingan throughput dari dua CPU untuk jenis permintaan yang paling sering kita temukan.



Hasil pada diagram diukur dengan indikator dasar mesin generasi ke-9 dengan prosesor Intel, dinormalisasi ke nilai 1,0 sepanjang sumbu x. Misalnya, dengan mengambil permintaan sederhana sebesar 10 KiB melalui HTTPS, kita dapat melihat bahwa AMD 1,5 kali lebih baik dari Intel dalam hal jumlah permintaan per detik. Rata-rata, AMD melakukan 34% lebih baik untuk tes yang diberikan daripada Intel. Menimbang bahwa TDP untuk AMD EPYC 7642 hanya 225 W, dan untuk dua prosesor Intel - 300 W, ternyata dalam hal "permintaan per watt" AMD menunjukkan hasil 2 kali lebih baik daripada Intel!

Pada titik ini, kami jelas condong ke arah opsi soket tunggal untuk AMD EPYC 7642 sebagai CPU masa depan kami untuk Generasi X. Kami sangat tertarik untuk mengetahui bagaimana server AMD EPYC berperilaku dalam pekerjaan nyata, dan kami segera mengirim beberapa server ke beberapa dari pusat data.

Kerja nyata


Hal pertama, tentu saja, adalah mempersiapkan server untuk bekerja dalam kondisi nyata. Semua alat berat di armada kami bekerja dengan proses dan layanan yang sama, yang menjadikannya peluang bagus untuk membandingkan kinerja dengan benar. Seperti di sebagian besar pusat data, kami memiliki beberapa generasi server yang digunakan, dan kami mengumpulkan server kami dalam kelompok sehingga setiap kelas berisi server dengan generasi yang kira-kira sama. Dalam beberapa kasus, ini dapat mengakibatkan kurva pemanfaatan bervariasi antara cluster. Tapi tidak dengan kita. Teknisi kami telah mengoptimalkan pemanfaatan CPU untuk semua generasi sehingga terlepas dari apakah CPU memiliki 8 core pada mesin tertentu atau 24, penggunaan CPU biasanya tidak berbeda dari yang lain.



Grafik mengilustrasikan komentar kami tentang kesamaan pemanfaatan - tidak ada perbedaan yang signifikan antara penggunaan CPU AMD di server Gen X dan penggunaan prosesor Intel di server Gen 9. Ini berarti bahwa server pengujian dan server inti dimuat secara sama. Baik. Inilah yang kami capai dalam pekerjaan server kami, dan kami membutuhkan ini untuk perbandingan yang jujur. Dua grafik di bawah ini menunjukkan jumlah permintaan yang diproses oleh satu inti CPU dan semua inti di tingkat server.


Permintaan ke


server Permintaan ke server

Dapat dilihat bahwa rata-rata AMD memproses 23% lebih banyak permintaan. Tidak buruk sama sekali! Kami sering menulis di blog kami tentang cara untuk meningkatkan kinerja Gen 9. Dan di sini kami memiliki jumlah core yang sama, tetapi AMD melakukan lebih banyak pekerjaan dengan lebih sedikit energi. Segera dari spesifikasi untuk jumlah core dan TDP dapat dilihat bahwa AMD memberikan kecepatan lebih dengan efisiensi energi yang lebih besar.

Tetapi, seperti yang telah kami sebutkan, TDP bukan spesifikasi standar, dan itu tidak sama untuk semua produsen, jadi mari kita lihat penggunaan energi yang sebenarnya. Dengan mengukur konsumsi energi server secara paralel dengan jumlah permintaan per detik, kami mendapatkan grafik berikut:



Dengan jumlah permintaan per detik yang dihabiskan per watt, server Gen X pada prosesor AMD 28% lebih efisien. Orang bisa berharap lebih, mengingat bahwa TDP AMD 25% lebih rendah, namun, harus diingat bahwa TDP adalah karakteristik yang ambigu. Kami melihat bahwa konsumsi energi aktual AMD hampir bersamaan dengan TDP yang ditunjukkan pada frekuensi jauh di atas basis; Intel tidak memilikinya. Ini adalah alasan lain mengapa TDP bukan perkiraan konsumsi energi yang dapat diandalkan. CPU Intel di server Gen 9 kami terintegrasi ke dalam sistem multicode, sementara CPU AMD bekerja di server faktor bentuk 1U standar. Ini tidak mendukung AMD, karena server multinode harus memberikan kepadatan yang lebih tinggi dengan konsumsi daya yang lebih sedikit per node, namun AMD masih mengungguli Intel dalam hal konsumsi energi per node.

Dalam sebagian besar perbandingan spesifikasi, simulasi pengujian dan pekerjaan nyata, konfigurasi 1P AMD EPYC 7642 terbukti jauh lebih baik daripada 2P Intel Xeon 6162. Dalam beberapa kondisi, AMD dapat bekerja 36% lebih baik, dan kami percaya bahwa dengan mengoptimalkan perangkat keras dan program, kami kita dapat mencapai peningkatan seperti itu secara berkelanjutan.

Ternyata AMD menang.

Grafik tambahan menunjukkan penundaan rata-rata dan keterlambatan p99 dalam operasi NGINX selama 24 jam. Rata-rata, proses AMD berjalan 25% lebih cepat. Pada p99, ini berjalan 20-50% lebih cepat tergantung pada waktu hari.

Kesimpulan


Teknisi perangkat keras dan kinerja Cloudflare melakukan sejumlah besar pengujian dan penelitian untuk memilih konfigurasi server terbaik untuk pelanggan kami. Kami senang bekerja di sini karena kami dapat menyelesaikan tugas-tugas muluk seperti itu, dan juga membantu Anda memecahkan masalah Anda dengan layanan seperti serverless edge-computing dan berbagai solusi untuk masalah keamanan, khususnya, Magic Transit, Argo Tunnel, dan perlindungan DDoS . Semua server di jaringan Cloudflare dikonfigurasikan untuk operasi yang andal, dan kami selalu berusaha untuk membuat setiap server generasi berikutnya lebih baik dari yang sebelumnya. Kami percaya bahwa AMD EPYC 7642 adalah jawaban untuk pertanyaan tentang memilih prosesor untuk Gen X.

Menggunakan layanan Cloudflare Workers, pengembang menyebarkan aplikasi mereka di jaringan kami, berkembang di seluruh dunia. Kami bangga menawarkan pelanggan kami kesempatan untuk berkonsentrasi pada penulisan kode sementara kami bekerja pada keamanan dan keandalan di cloud. Dan hari ini kami bahkan lebih senang mengumumkan bahwa pekerjaan mereka akan digunakan pada server generasi Gen X kami yang menjalankan prosesor AMD EPYC generasi kedua.


Prosesor EPYC 7642, dengan nama sandi "Roma" [Roma]

Menggunakan AMD EPYC 7642, kami dapat meningkatkan kecepatan kami dan memfasilitasi perluasan jaringan ke kota-kota baru. Roma tidak dibangun dalam satu hari, tetapi segera akan lebih dekat dengan banyak dari Anda.

Dalam beberapa tahun terakhir, kami telah bereksperimen dengan banyak chip x86 dari Intel dan AMD, serta prosesor dari ARM. Kami berharap bahwa di masa depan, produsen CPU ini akan bekerja bersama kami sehingga kami dapat bersama-sama membangun Internet yang lebih baik.

All Articles