Cloudflare memilih prosesor dari AMD untuk server edge generasi kesepuluh

Cloudflare memilih prosesor dari AMD untuk server edge generasi kesepuluh

Lebih dari satu miliar alamat IP unik melewati Jaringan Cloudflare setiap hari; ini melayani lebih dari 11 juta permintaan HTTP per detik; dia berada dalam jarak 100ms dari 95% populasi internet. Jaringan kami mencakup 200 kota di lebih dari 90 negara, dan tim teknisi kami telah membangun infrastruktur yang sangat cepat dan andal.

Kami sangat bangga dengan pekerjaan kami dan berkomitmen untuk membantu menjadikan Internet menjadi tempat yang lebih baik dan lebih aman. Insinyur perangkat keras Cloudflare memiliki pemahaman mendalam tentang server dan komponennya untuk memahami dan memilih perangkat keras terbaik untuk memaksimalkan kinerjanya.

Tumpukan perangkat lunak kami menangani komputasi beban tinggi dan sangat bergantung pada CPU, sehingga teknisi kami harus terus mengoptimalkan efisiensi dan keandalan Cloudflare di setiap tingkat tumpukan. Di sisi server, cara termudah untuk meningkatkan kekuatan pemrosesan adalah dengan menambahkan inti CPU. Semakin banyak inti yang dapat ditampung oleh server, semakin banyak data yang dapat diproses. Hal ini penting bagi kami karena variasi produk dan klien kami bertambah seiring waktu, dan pertumbuhan permintaan memerlukan peningkatan kinerja dari server. Untuk meningkatkan kinerjanya, kami perlu meningkatkan kepadatan inti - dan inilah yang kami capai. Di bawah ini kami memberikan data rinci tentang prosesor untuk server yang telah kami terapkan sejak tahun 2015, termasuk jumlah core:

-
Gen 6
Gen 7
Gen 8
Gen 9

Memulai
2015
2016
2017
2018

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

Inti fisik
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

TDP per inti
10.65W
8.50W
7.08W
6.25W

Pada tahun 2018, kami membuat lompatan besar dalam jumlah total inti per server dengan Gen 9. Dampak lingkungan telah berkurang sebesar 33% dibandingkan generasi ke-8, sehingga memberi kami peluang untuk meningkatkan volume dan daya komputasi per rak. Persyaratan desain untuk pembuangan panas (Kekuatan Desain Termal, TDP) disebutkan untuk menyoroti bahwa efisiensi energi kita juga meningkat seiring berjalannya waktu. Indikator ini penting bagi kami: pertama, kami ingin mengurangi emisi karbon ke atmosfer; kedua, kami ingin memanfaatkan energi dari pusat data sebaik-baiknya. Namun kami tahu bahwa kami memiliki sesuatu untuk diperjuangkan.

Metrik penentu utama kami adalah jumlah permintaan per watt. Kami dapat meningkatkan jumlah permintaan per detik dengan menambahkan inti, namun kami harus tetap sesuai anggaran daya kami. Kami dibatasi oleh infrastruktur daya pusat data, yang, bersama dengan modul distribusi daya pilihan kami, memberi kami batas atas tertentu untuk setiap rak server. Menambahkan server ke rak meningkatkan konsumsi daya. Biaya operasional akan meningkat secara signifikan jika kita melebihi batas energi per rak dan harus menambah rak baru. Kami perlu meningkatkan daya pemrosesan sambil tetap berada dalam kisaran konsumsi daya yang sama, yang akan meningkatkan permintaan per watt, yang merupakan metrik utama kami.

Seperti yang sudah Anda duga, kami mempelajari konsumsi energi dengan cermat pada tahap desain. Tabel di atas menunjukkan bahwa kita tidak perlu membuang waktu untuk menggunakan CPU yang lebih boros energi jika TDP per inti lebih tinggi dari generasi saat ini - hal ini akan berdampak negatif pada metrik, permintaan per watt. Kami dengan cermat mempelajari sistem yang siap dijalankan untuk generasi X kami di pasar dan membuat keputusan. Kami beralih dari desain soket ganda Intel Xeon Platinum 48 6162-core ke desain soket tunggal AMD EPYC 48 7642-core.

Cloudflare memilih prosesor dari AMD untuk server edge generasi kesepuluh

-
Intel
AMD

CPU
Xeon Platinum 6162
EPYC 7642

mikroarsitektur
"Danau Langit"
"Zen 2"

Nama kode
“Skylake SP”
"Roma"

Proses teknologi
14nm
7nm

inti
X 2 24
48

Frekuensi
1.9 GHz
2.4 GHz

L3 Cache/soket
24x1.375MiB
16x16MiB

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

TDP
2 x 150W
225W

PCIe/soket
48 jalur
128 jalur

ISA
x86-64
x86-64

Dari spesifikasinya terlihat jelas bahwa chip dari AMD akan memungkinkan kita untuk mempertahankan jumlah core yang sama sekaligus menurunkan TDP. Generasi ke-9 memiliki TDP per inti sebesar 6,25 W, dan generasi X akan menjadi 4,69 W. Dikurangi sebesar 25%. Berkat peningkatan frekuensi, dan mungkin desain yang lebih sederhana dengan satu soket, dapat diasumsikan bahwa chip AMD akan bekerja lebih baik dalam praktiknya. Kami sedang menjalankan berbagai pengujian dan simulasi untuk melihat seberapa baik kinerja AMD.

Untuk saat ini, perhatikan bahwa TDP adalah metrik yang disederhanakan dari spesifikasi pabrikan, yang kami gunakan pada tahap awal desain server dan pemilihan CPU. Pencarian cepat di Google mengungkapkan bahwa AMD dan Intel memiliki pendekatan berbeda dalam mendefinisikan TDP, sehingga membuat spesifikasinya tidak dapat diandalkan. Konsumsi daya CPU yang sebenarnya, dan yang lebih penting lagi konsumsi daya server, adalah apa yang sebenarnya kami gunakan saat membuat keputusan akhir.

Kesiapan ekosistem

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

Kami menguji berbagai prosesor dengan jumlah inti, jumlah soket, dan frekuensi yang bervariasi. Karena artikel ini membahas alasan kami memilih AMD EPYC 7642, semua bagan di blog ini berfokus pada kinerja prosesor AMD dibandingkan dengan Intel Xeon Platinum 6162 dari generasi ke-9 kita.

Hasilnya sesuai dengan pengukuran satu server dengan setiap varian prosesor - yaitu, dengan dua prosesor 24-core dari Intel, atau dengan satu prosesor 48-core dari AMD (server untuk Intel dengan dua soket dan server untuk AMD EPYC dengan satu soket). Di BIOS kami mengatur parameter yang sesuai dengan server yang sedang berjalan. Ini adalah 3,03 GHz untuk AMD dan 2,5 GHz untuk Intel. Sederhananya, kami berharap dengan jumlah core yang sama, kinerja AMD akan 21% lebih baik daripada Intel.

Kriptografi

Cloudflare memilih prosesor dari AMD untuk server edge generasi kesepuluh

Cloudflare memilih prosesor dari AMD untuk server edge generasi kesepuluh

Tampak menjanjikan untuk AMD. Ia berkinerja 18% lebih baik pada kriptografi kunci publik. Dengan kunci simetris, ia kalah dibandingkan opsi enkripsi AES-128-GCM, namun secara keseluruhan kinerjanya sebanding.

Kompresi

Di server edge, kami mengompresi banyak data untuk menghemat bandwidth dan meningkatkan kecepatan pengiriman konten. Kami meneruskan data melalui perpustakaan C zlib dan brotli. Semua pengujian dijalankan pada file HTML blog.cloudflare.com di memori.

Cloudflare memilih prosesor dari AMD untuk server edge generasi kesepuluh

Cloudflare memilih prosesor dari AMD untuk server edge generasi kesepuluh

AMD menang dengan rata-rata 29% saat menggunakan gzip. Dalam kasus brotli, hasilnya bahkan lebih baik pada pengujian dengan kualitas 7, yang kami gunakan untuk kompresi dinamis. Ada penurunan tajam pada pengujian Brotli-9 - kami menjelaskan hal ini dengan fakta bahwa Brotli menghabiskan banyak memori dan melebihi cache. Namun, AMD menang dengan selisih yang besar.

Banyak layanan kami ditulis dalam Go. Pada grafik berikut, kami memeriksa ulang kecepatan kriptografi dan kompresi di Go dengan RegExp pada baris 32 KB menggunakan pustaka string.

Gunakan kriptografi

Cloudflare memilih prosesor dari AMD untuk server edge generasi kesepuluh

Pergi Kompresi

Cloudflare memilih prosesor dari AMD untuk server edge generasi kesepuluh

Cloudflare memilih prosesor dari AMD untuk server edge generasi kesepuluh

Buka Regexp

Cloudflare memilih prosesor dari AMD untuk server edge generasi kesepuluh

Cloudflare memilih prosesor dari AMD untuk server edge generasi kesepuluh

Pergi String

Cloudflare memilih prosesor dari AMD untuk server edge generasi kesepuluh

AMD berkinerja lebih baik di semua pengujian dengan Go kecuali ECDSA P256 Sign, yang tertinggal 38% - yang aneh, mengingat kinerjanya 24% lebih baik di C. Ada baiknya mencari tahu apa yang terjadi di sana. Secara keseluruhan, AMD tidak menang banyak, namun tetap menunjukkan hasil terbaik.

LuaJIT

Kami sering menggunakan LuaJIT di stack. Ini adalah lem yang merekatkan seluruh bagian Cloudflare menjadi satu. Dan kami senang AMD juga menang di sini.

Secara keseluruhan, pengujian menunjukkan bahwa EPYC 7642 berkinerja lebih baik daripada dua Xeon Platinum 6162. AMD kalah dalam beberapa pengujian - misalnya, AES-128-GCM dan Go OpenSSL ECDSA-P256 Sign - tetapi menang dalam semua pengujian lainnya, dengan rata-rata sebesar 25%.

Simulasi Beban Kerja

Setelah pengujian cepat, kami menjalankan server melalui serangkaian simulasi lain di mana beban sintetis diterapkan ke tumpukan tepi perangkat lunak. Di sini kami mensimulasikan beban kerja skenario dengan berbagai jenis permintaan yang dapat ditemui dalam pekerjaan nyata. Permintaan bervariasi dalam volume data, protokol HTTP atau HTTPS, sumber WAF, Pekerja, dan banyak variabel lainnya. Dibawah ini perbandingan throughput kedua CPU untuk jenis request yang paling sering kita jumpai.

Cloudflare memilih prosesor dari AMD untuk server edge generasi kesepuluh

Hasil dalam bagan diukur berdasarkan garis dasar mesin berbasis Intel generasi ke-9, yang dinormalisasi ke nilai 1,0 pada sumbu x. Misalnya, dengan mengambil permintaan 10 KiB sederhana melalui HTTPS, kita dapat melihat bahwa AMD bekerja 1,5 kali lebih baik daripada Intel dalam hal permintaan per detik. Rata-rata, kinerja AMD 34% lebih baik daripada Intel untuk pengujian ini. Mengingat TDP untuk satu AMD EPYC 7642 adalah 225 W, dan untuk dua prosesor Intel adalah 300 W, ternyata dari segi “request per watt” AMD menunjukkan hasil 2 kali lebih baik dibandingkan Intel!

Pada titik ini, kami sudah jelas condong ke opsi soket tunggal untuk AMD EPYC 7642 sebagai CPU Gen X masa depan kami. Kami sangat tertarik untuk melihat bagaimana kinerja server AMD EPYC dalam pekerjaan nyata, dan kami segera mengirimkan beberapa server ke beberapa dari pusat data.

Kerja nyata

Langkah pertama, tentu saja, adalah mempersiapkan server untuk bekerja dalam kondisi nyata. Semua alat berat di armada kami bekerja dengan proses dan layanan yang sama, sehingga memberikan peluang bagus untuk membandingkan kinerja dengan benar. Seperti kebanyakan pusat data, kami memiliki beberapa generasi server yang dikerahkan, dan kami mengumpulkan server kami ke dalam cluster sehingga setiap kelas berisi server dengan generasi yang kira-kira sama. Dalam beberapa kasus, hal ini dapat mengakibatkan kurva daur ulang yang berbeda antar cluster. Tapi tidak dengan kami. Teknisi kami telah mengoptimalkan penggunaan CPU untuk semua generasi sehingga terlepas dari apakah CPU mesin tertentu memiliki 8 atau 24 inti, penggunaan CPU secara umum sama dengan yang lain.

Cloudflare memilih prosesor dari AMD untuk server edge generasi kesepuluh

Grafik tersebut mengilustrasikan komentar kami mengenai kesamaan pemanfaatan - tidak ada perbedaan yang signifikan antara penggunaan CPU AMD di server generasi Gen X dan penggunaan prosesor Intel di server generasi Gen 9. Ini berarti server pengujian dan server dasar dimuat secara merata . Besar. Inilah yang kami perjuangkan di server kami, dan kami membutuhkannya untuk perbandingan yang adil. Dua grafik di bawah ini menunjukkan jumlah permintaan yang diproses oleh satu inti CPU dan semua inti di tingkat server.

Cloudflare memilih prosesor dari AMD untuk server edge generasi kesepuluh
Permintaan per inti

Cloudflare memilih prosesor dari AMD untuk server edge generasi kesepuluh
Permintaan ke server

Terlihat bahwa rata-rata AMD memproses permintaan 23% lebih banyak. Tidak buruk sama sekali! Kami sudah sering menulis di blog kami tentang cara meningkatkan kinerja Gen 9. Dan sekarang kami memiliki jumlah inti yang sama, namun AMD melakukan lebih banyak pekerjaan dengan daya yang lebih kecil. Terlihat jelas dari spesifikasi jumlah core dan TDP bahwa AMD memberikan kecepatan lebih tinggi dengan efisiensi energi lebih besar.

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

Cloudflare memilih prosesor dari AMD untuk server edge generasi kesepuluh

Berdasarkan permintaan per detik per watt yang dihabiskan, server Gen X yang berjalan pada prosesor AMD 28% lebih efisien. Kita bisa berharap lebih, mengingat TDP AMD 25% lebih rendah, namun perlu diingat bahwa TDP adalah karakteristik yang ambigu. Kita telah melihat bahwa konsumsi daya aktual AMD hampir sama dengan TDP yang disebutkan pada frekuensi yang jauh lebih tinggi daripada basis; Intel tidak memilikinya. Ini adalah alasan lain mengapa TDP bukan merupakan perkiraan konsumsi energi yang dapat diandalkan. CPU dari Intel di server Gen 9 kami diintegrasikan ke dalam sistem multi-node, sedangkan CPU dari AMD beroperasi di server faktor bentuk 1U standar. Hal ini tidak menguntungkan AMD, karena server multinode seharusnya memberikan kepadatan yang lebih besar dengan konsumsi daya per node yang lebih sedikit, namun AMD masih mengungguli Intel dalam hal konsumsi daya per node.

Dalam sebagian besar perbandingan di seluruh spesifikasi, simulasi pengujian, dan performa di dunia nyata, konfigurasi 1P AMD EPYC 7642 berkinerja jauh lebih baik dibandingkan 2P Intel Xeon 6162. Dalam beberapa kondisi, AMD dapat berkinerja hingga 36% lebih baik, dan kami percaya bahwa dengan mengoptimalkan perangkat keras dan perangkat lunak, kami dapat mencapai peningkatan ini secara berkelanjutan.

Ternyata AMD menang.

Grafik tambahan menunjukkan latensi rata-rata dan latensi p99 yang menjalankan NGINX selama periode 24 jam. Rata-rata, proses di AMD berjalan 25% lebih cepat. Di p99, ini berjalan 20-50% lebih cepat tergantung waktu.

Kesimpulan

Insinyur Perangkat Keras dan Kinerja Cloudflare melakukan banyak pengujian dan penelitian untuk menentukan konfigurasi server terbaik bagi pelanggan kami. Kami senang bekerja di sini karena kami dapat memecahkan masalah besar seperti ini, dan kami dapat membantu Anda memecahkan masalah Anda dengan layanan seperti komputasi edge tanpa server dan serangkaian solusi keamanan seperti Magic Transit, Argo Tunnel, dan perlindungan DDoS. . Semua server di jaringan Cloudflare dikonfigurasikan agar bekerja dengan andal, dan kami selalu berusaha menjadikan setiap server generasi berikutnya lebih baik dari server sebelumnya. Kami yakin AMD EPYC 7642 adalah jawabannya dalam hal prosesor Gen X.

Dengan menggunakan Cloudflare Workers, pengembang menyebarkan aplikasi mereka di jaringan kami yang berkembang di seluruh dunia. Kami bangga membiarkan pelanggan kami fokus pada penulisan kode sementara kami fokus pada keamanan dan keandalan di cloud. Dan hari ini kami dengan lebih gembira lagi mengumumkan bahwa karya mereka akan diterapkan pada server generasi X kami yang menjalankan prosesor AMD EPYC generasi kedua.

Cloudflare memilih prosesor dari AMD untuk server edge generasi kesepuluh
Prosesor EPYC 7642, nama kode "Roma" [Roma]

Dengan menggunakan AMD EPYC 7642, kami dapat meningkatkan kinerja dan mempermudah perluasan jaringan kami ke kota-kota baru. Roma tidak dibangun dalam sehari, namun akan segera menjadi 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 para pembuat CPU ini terus bekerja sama dengan kami di masa depan sehingga kita semua dapat bersama-sama membangun Internet yang lebih baik.

Sumber: www.habr.com

Tambah komentar