Netflix優化了FreeBSD的網絡棧在AMD EPYC上提升超過兩倍的性能
來自Netflix的員工Drew Gallatin在挪威舉辦的2019歐洲BSD大會(EuroBSDcon 2019)上介紹了該公司對FreeBSD網絡棧的優化。Netflix之前為了能讓視頻流在Intel Xeno和AMD EPYC服務器上達到200Gb/s而不斷發力,現在他們終於讓傳輸率達到190Gb/s,同時發現在AMD EPYC Naples/Rome服務器的具有多達兩倍增幅的潛力,遠超Intel。
Netflix一直以來都用FreeBSD作為數據中心服務器系統而著稱,尤其是網絡性能要求高的地方更為如此。但由於想要在單個服務器上達到200Gb/s的網絡性能,於是就使得他們開始在FreeBSD的網絡棧上為NUMA單元做優化。在NUMA本地內存上為內核TLS密鑰緩存分配空間,以及使用sendfile傳送文件,也都屬於他們的優化範圍。同時還順手改善了Nginx的網絡連接處理以及入站連接處理。
只想看結果的話請看這裡,Netflix在FreeBSD上的NUMA優化,使得傳輸速率在Intel Xeno服務器上從105Gb/s增長到191Gb/s,而NUMA總線佔用率從40%下降到13%。
AMD EPYC的性能就更加令人印象深刻了,從68Gb/s增長到194Gb/s。換句話說,EPYC最初遠比Xeon慢,但現在Netflix的AMD EPYC服務器比起Intel更接近與200Gb/s的目標。
不但因為EPYC更快,而且還要感謝的是,由於每個插槽有128條PCIe傳輸通道,因此他們可以在一個插槽中獲得使用兩個Intel Xeon CPU的能力。另一方面,Netflix也為此批評AMD的工具實在太過匱乏(即使在Linux上也是這樣)。
最終,Netflix現在可以在每台FreeBSD服務器上達到200Gb/s的加密視頻流傳輸率了。詳情可見這篇幻燈展示。