넷플릭스는 2020년부터 하나의 서버로 최대 200Gbps의 TLS 암호화 영상을 송출하고 있습니다. 하지만 그걸론 부족합니다. 그래서 400Gbps로 대역폭을 높이는 방법을 연구하고 있습니다. 넷플릭스의 수석 소프트웨어 엔지니어인 Andrew Gallatin은 FreeBSD 서버에서 대역폭을 더 높이는 방법에 대해 설명했습니다.
넷플릭스는 에픽 로마 프로세서를 사용했습니다. 32개의 젠2 코어가 2.5~3.35GHz로 작동하는 에픽 7502P 프로세서이며, 최대 128개의 PCIe 4.0 레인으로 250GBps의 대역폭을 내 2Tbps의 네트워크를 쓸 수 있습니다. 넷플릭스는 여기에 DDR4 3200 256GB 메모리를 장착해, 메모리 대역폭은 150GBps, 네트워크는 1.2Tbps를 만들었습니다.
스토리지의 경우 웨스턴 디지털 WD SN720 2TB NVMe SSD 18개를 장착했습니다. 네트워크는 멜라녹스 커넥트X-6 Dx 어댑터 2개를 사용했습니다. 처음에는 메모리 제한 때문에 서버 대역폭이 240Gbps였지만 지금은 나아졌습니다. 대역폭을 최대한으로 뽑아내게 위해 다양한 NUMA 구성을 실험했습니다. 에픽은 여러 NUMA 모드를 제공합니다. 하나의 NUMA 노드는 240Gbps지만 4개의 노드는 280Gbps까지 나옵니다.
성능을 최적화하고 하드웨어 병목을 피하기 위해 TLS 암호화는 에픽 프로세서가 아닌 멜라녹스 커넥트X-6 Dx에 맡겼습니다. 소프트웨어와 펌웨어를 수정해 멜라녹스 커넥트X-6 Dx 어댑터 1개가 190Gbps, 2개가 380Gbps를 압축할 수 있었습니다. 그리고 CPU를 거쳐 압축하지 않기에 리소스를 확보하고 메모리 대역폭을 절반으로 줄였습니다. 4개의 NUMA 노드는 50%, NUMA가 없다면 60%의 CPU 점유율을 기록합니다.
넷플릭스는 제온 플래티넘 8352V(아이스레이크를 테스트했지만 230Gbps, 암페어 알트라 Q80-30도 썼지만 180Gbps의 대역폭이 그쳤습니다. 다시 말하지만 에픽 7502P는 280Gbps였습니다. 또 제온의 경우 메모리 클럭이 2933MHz라 메모리 병목 현상이 생겼습니다. 암페어 알트라는 3200Mhz 메모리를 지원하나 칩 자체의 대역폭이 부족했습니다.
넷플릭스는 400Gbps에 멈추지 않고 800Gbps를 테스트 중입니다. 내년에 더 높은 대역폭의 서버를 도입할 수도 있다고 합니다.