Netflix telah melayani hingga 200 Gbps video terenkripsi TLS dari satu server sejak 2020. Meski demikian, Netflix bertujuan untuk menggandakan bandwidth mereka menjadi 400 Gbps. Andrew Gallatin, Senior Software Engineer di Netflix, merinci tantangan dalam mendorong bandwidth pada server berbasis FreeBSD.
Netflix beralih ke prosesor AMD EPYC Rome untuk mencapai tujuannya. Perusahaan ini melengkapi servernya dengan EPYC 7502P, yang memiliki 32 Zen 2 cores dengan base clock 2,5 GHz dan boost clock 3,35 GHz. Lebih penting lagi, 32-core menawarkan hingga 128 PCIe 4.0 lanes, sekitar 250 GBps bandwidth atau sekitar 2 Tbps dalam unit jaringan.
Netflix memasangkan EPYC 7502P dengan memori DDR4-3200 256GB, dengan total bandwidth memori hingga 150 GBps, atau 1,2 Tbps dalam unit jaringan.
Untuk storage, AMD-powered server milik Netflix menggunakan 18 Western Digital WD SN720 2TB NVMe SSDs. Ini juga dilengkapi dengan sepasang adaptor jaringan Nvidia’s Mellanox ConnectX-6 Dx yang berkomunikasi melalui interface PCIe 4.0 x16. Awalnya, Netflix hanya mendapatkan 240 Gbps dari server, terutama karena keterbatasan memori.
Netflix bereksperimen dengan konfigurasi NUMA (Non Uniform Memory Architecture) yang berbeda untuk memaksimalkan bandwidth. Prosesor EPYC AMD mendukung nodes NUMA yang berbeda per socket, di rentang 1, 2 atau 4.
Tentu saja, prosesor menentukan mode mana yang tersedia atau tidak. EPYC 7502P, yang merupakan SKU yang digunakan di server Netflix, mendukung ketiga mode NUMA. Menurut slide Gallatin, konfigurasi node NUMA tunggal memberikan hingga 240 Gbps, sementara pengaturan dengan empat node NUMA mencapai nilai hingga 280 Gbps.
Dalam upaya untuk mengoptimalkan kinerja dan menghindari kemacetan hardware, Netflix menguji offloading enkripsi TLS ke Mellanox ConnectX-6 Dx, bukan EPYC 7502P. Dengan sedikit bermain-main dengan software dan beberapa pembaharuan firmware, Netflix berhasil memeras adaptor 190 Gbps per Mellanox ConnectX-6 Dx atau 380 Gbps dengan dua adaptor jaringan.
Enkripsi tidak lagi melewati prosesor, sehingga membantu membebaskan sumber daya dan memotong bandwidth memori hingga setengahnya. Hasilnya menunjukkan pemanfaatan prosesor 50%, dengan empat node NUMA dan sekitar 60% tanpa NUMA.
Konfigurasi Server Netflix
AMD | Intel | Ampere | |
Prosesor | EPYC 7502P (Roma) | Xeon Platinum 8352V (Ice Lake) | Altra Q80-30 |
Ingatan | DDR4-3200 256GB | 256GB DDR4-3200 @ DDR4-2933 | 256GB DDR4-3200 |
Penyimpanan | 18 x WD SN720 | 20 x Kioxia 4TB NVMe (PCIe 4.0) | 16 x WD SN720 |
Adaptor Jaringan | 2 x Mellanox ConnectX-6 Dx | 2 x Mellanox ConnectX-6 Dx | 2 x Mellanox ConnectX-6 Dx |
Netflix mengevaluasi opsi prosesor lain dari Intel dan Ampere, tetapi AMD jelas merupakan pilihan yang unggul. Misalnya, EPYC 7502P menawarkan 280 Gbps, sedangkan Xeon Platinum 8352V (Ice Lake) dan Altra Q80-30 masing-masing menghasilkan 230 Gbps dan 180 Gbps.
Memori itu adalah hambatan pada sistem Intel, karena Xeon Platinum 8352V secara native mendukung DDR4-2933 sebagai lawan dari dukungan DDR4-3200 EPYC 7502P. Gallatin mengharapkan kinerja yang sama dengan EPYC 7502P jika chip Ice Lake dipasangkan dengan memori yang setara. Sementara Altra Q80-30 dari Ampere mendukung memori DDR4-3200, chip ini terbatas pada 180 Gbps.
Namun demikian, Altra Q80-30 adalah pesaing terdekat dengan EPYC 7502P dengan offload TLS. Sistem ini menawarkan 240 Gbps, tetapi Gallatin mencatat pemanfaatan prosesor yang rendah dan banyak output turun, yang bisa menjadi masalah spesifik PCIe.
Setelah mengaktifkan tag yang diperpanjang, sistem Altra Q80-30 memompa 320 Gbps, hanya 60 Gbps lebih rendah dari sistem EPYC 7502P. Rupanya, sistem Xeon Platinum 8352V memiliki opsi pemesanan santai PCIe yang dikunci, sehingga Gallatin tidak dapat menilai kinerja adaptor jaringan.
Sementara 400 Gbps terdengar bagus dan semuanya, Netflix sudah memiliki prototipe 800 Gbps untuk pengujian. Gallatin tidak berbagi spesifikasi, tetapi dia mengisyaratkan bahwa kita mungkin mendengarnya tahun depan. (KO)