CPU

Netflix sceglie AMD EPYC per i suoi nuovi server

Netflix offre fino a 200Gb/s di video crittografati con TLS da un singolo server dal 2020. Tuttavia, l’azienda mira a raddoppiare la larghezza di banda a ben 400Gb/s. Nel corso della sua presentazione alla conferenza EuroBSD 2021 (come riportato da HardwareLuxx), Andrew Gallatin, Senior Software Engineer di Netflix, ha descritto nel dettaglio le sfide affrontate per spingere la larghezza di banda sui suoi server basati su FreeBSD.

Credit: AMD
AMD EPYC

Netflix si è rivolto ai processori EPYC Rome di AMD per raggiungere il suo obiettivo. L’azienda ha dotato il suo server dell’EPYC 7502P, che gestisce 32 core Zen 2 con un base clock di 2,5GHz e un boost clock di 3,35 GHz. Ancora più importante, il processore offre fino a 128 linee PCIe 4.0, che forniscono circa 250GB/s di larghezza di banda. Netflix ha abbinato l’EPYC 7502P a 256GB di memoria DDR4-3200, con una larghezza di banda di memoria totale fino a 150GB/s. Per l’archiviazione, il server utilizza 18 SSD NVMe Western Digital WD SN720 da 2TB. È inoltre dotato di una coppia di adattatori di rete Mellanox ConnectX-6 Dx di NVIDIA che comunicano tramite un’interfaccia PCIe 4.0 x16. Inizialmente, Netflix riusciva ad avere solo 240Gb/s dal server, principalmente a causa della limitazione della memoria.

Netflix ha sperimentato diverse configurazioni NUMA (Non Uniform Memory Architecture) per massimizzare la larghezza di banda. I processori EPYC di AMD supportano diversi nodi NUMA per socket, che possono essere 1, 2 o 4. Naturalmente, il processore determina quali modalità sono disponibili o meno. L’EPYC 7502P, che è il modello impiegato nel server di Netflix, supporta tutte e tre le modalità NUMA. Secondo le slide di Gallatin, una configurazione con un singolo nodo NUMA fornisce fino a 240Gb/s, mentre una configurazione con quattro nodi NUMA aumenta tale valore fino a 280Gb/s.

Nel tentativo di ottimizzare le prestazioni ed evitare colli di bottiglia hardware, Netflix ha testato l’offload della crittografia TLS su Mellanox ConnectX-6 Dx, invece che su EPYC 7502P. Grazie ad alcuni aggiornamenti del firmware e ottimizzazioni software, Netflix è riuscito a ottenere 190Gb/s per adattatore Mellanox ConnectX-6 Dx o 380Gb/s con due adattatori di rete. La crittografia non passa più attraverso il processore, quindi aiuta a liberare risorse e dimezza la larghezza di banda della memoria. I risultati hanno mostrato un utilizzo del processore del 50% con quattro nodi NUMA e circa il 60% senza NUMA.

Credit: Netflix
AMD EPYC Netflix
Credit: Netflix

Netflix ha valutato altre opzioni, come processori Intel e Ampere, ma AMD è stata considerata quella migliore. Ad esempio, l’EPYC 7502P offriva 280Gb/s, mentre lo Xeon Platinum 8352V (Ice Lake) e l’Altra Q80-30 fornivano rispettivamente 230Gb/s e 180Gb/s. La memoria costituiva il collo di bottiglia sul sistema Intel, dal momento che lo Xeon Platinum 8352V supporta nativamente DDR4-2933 rispetto alle DDR4-3200 dell’EPYC 7502P. Gallatin si aspettava prestazioni simili all’EPYC 7502P se il chip Ice Lake fosse stato accoppiato a una memoria equivalente. Mentre l’Altra Q80-30 di Ampere supporta la memoria DDR4-3200, ma il chip è limitato a 180Gb/s. Tuttavia, l’Altra Q80-30 era il concorrente più vicino all’EPYC 7502P con l’offload TLS. Il sistema offriva 240Gb/s, ma Gallatin ha notato un basso utilizzo del processore e molti cali di output, che potrebbero derivare da un problema specifico del PCI Express. Dopo aver abilitato i tag estesi, il sistema Altra Q80-30 ha fornito 320Gb/s, appena 60 Gbps in meno rispetto al sistema EPYC 7502P. Apparentemente, la configurazione Xeon Platinum 8352V aveva l’opzione PCIe relaxed ordering bloccata; quindi, Gallatin non è stato in grado di valutare le prestazioni della scheda di rete.

Nonostante 400Gb/s sembrino già tanti, Netflix ha già un prototipo da 800Gb/s per i test. Gallatin non ha condiviso le specifiche, ma ha lasciato intendere che potremmo sentirne parlare il prossimo anno.