넷플릭스가 동영상 스트리밍 품질을 향상시키기 위해 이상적인 하드웨어와 소프트웨어 조합을 찾으려고 시행착오를 겪고 있다. 이런 넷플릭스가 AMD 서버용 CPU인 에픽(EPYC)을 이용한 결과를 보고하고 있다.
2020년부터 넷플릭스는 서버 하나당 200Gbps라는 속도로 동영상 콘텐츠를 전달했다. 넷플릭스의 다음 목표는 속도가 2배인 400Gbps로 높일 것이며 이 목표 달성을 위해 AMD 2세대 서버용 CPU인 에픽 7502P(EPYC 7502P)를 채택했다.
에픽 7502P 코어 수는 32개. 최대 동작 클록은 2.5GHz이며 최대 클록은 3.35GHz다. 넷플릭스 서버에는 256GB DDR4-3200도 탑재하고 있으며 8채널 메모리 인터페이스로 150Gbps 대역폭을 제공한다. 또 스토리지로 서버당 18개 웨스턴디지털 SN720 2TB를 사용한다. PCIe 4.0 x16을 통해 연결하는 네트워크카드(Mellanox ConnectX-6 Dx)도 서버마다 2개 도입했다. 이 구성은 250Gbps라는 속도를 제공할 것으로 기대되고 있었다.
하지만 이런 서버에서 연결 테스트를 실시한 결과 첫 번째 결과로 나타난 건 240Gbps라는 숫자였다. 메모리 대역폭 제한으로 인해 기대치 이하 숫자가 됐다고 본 넷플릭스는 대역폭을 극대화하기 위해 다양한 NUMA(Non-Uniform Memory Access) 구성을 시도했다. NUMA 구성으로 PCIe를 통해 연결된 메모리 컨트롤러와 장치를 최적 코어에 할당할 수 있게 됐지만 NUMA 노드간 프로세스에 따라 지연될 수 있었다.
따라서 넷플릭스는 NUMA 노드를 4대로 늘리고 스토리지와 네트워크 고유 프로세스를 모두 저장하고 PCIe 기기에 최적으로 연결되는 NUMA 노드에 집중시켜 최대 280Gbps 속도를 제공할 수 있다.
400Gbps에 도달하기 위한 다음 단계로 소프트웨어 최적화가 고려됐다. 하드웨어 병목 현상을 방지하기 위해 FreeBSD에서 TLS를 구현하고 TLS 암호화를 에픽 7502P 대신 어댑터(Mellanox ConnectX-6 Dx)에 오프로드래 조정을 실시해 어댑터마다 190Gbps 2개로 최대 380Gbps 수치를 냈다. 프로세서 사용률은 NUMA 없이 60%, NUMA 4개에서 50%였다.
넷플릭스는 또 제온 플래티넘 8352V와 암페어 알테라 Q80-30 등 구성을 바꿔 테스트를 해봐도 가장 빠른 값을 보인 건 에픽 7502P였다고 밝혔다. 넷플릭스는 이미 800Gbps를 달성하는 다음 목표를 세우고 있으며 2022년에도 새로운 정보를 발표할 것으로 보인다. 관련 내용은 이곳에서 확인할 수 있다.