Perangkat Keras & InferensiSumber Terbuka 🇷🇺 07.08.2026 13:02

Mencapai 8,8 Gbps Lalu Lintas Video pada Satu Inti CPU dengan Go

MicrosoftMicrosoft
Seorang pengembang dari Habr menjelaskan pembuatan mesin streaming RTSP-ke-HLS khusus dalam Go yang disebut Ruseon Core untuk menangani masalah Thundering Herd. Mesin ini menggunakan buffer cincin tanpa salinan dengan sync.Pool untuk menghindari alokasi memori, mencapai throughput 8,8 Gbps pada satu inti, dengan penggunaan memori dan CPU yang minimal, tidak seperti FFmpeg atau MediaMTX.
Setelah sebuah tautan bersama menyebabkan kawanan besar (thundering herd) dan server kehabisan memori (OOM), penulis memutuskan untuk membangun mesin streaming khusus dalam Go alih-alih menyewa perangkat keras yang lebih kuat. Mesin tersebut, bernama Ruseon Core, menerima aliran RTSP dan menghasilkan HLS tanpa transcoding, hanya meneruskan byte. Fitur utamanya adalah ring buffer tanpa salinan (zero-copy) dengan sync.Pool: frame ditulis sekali ke dalam buffer dari pool dan dibagikan ke semua pelanggan, menghilangkan alokasi dan tekanan pada garbage collector. Tolok ukur menunjukkan 13,9 ns/operasi dan 0 B/operasi. Pengujian beban dengan k6 (1000 pengguna) pada Ryzen 5600x mencapai 8,8 Gbps (81 GB dalam 70 detik) dengan 60 ribu respons HTTP yang sukses dan tanpa kegagalan. Perlindungan pelanggan menggunakan pengiriman kanal non-blocking dengan pembuangan frame untuk klien lambat, dan flag NeedsIFrame untuk sinkronisasi ulang pada keyframe berikutnya. Jendela geser sebanyak 5 segmen HLS disimpan di memori; segmen basi mengembalikan 404, menyebabkan pemutar seperti hls.js melompat ke tepi langsung (live edge). Sistem menggunakan 250 MB RAM untuk 100 aliran, tetapi buffer soket sistem operasi menambah beban. Penulis memperingatkan tentang jebakan sync.Pool dan menyarankan bahwa untuk beban kerja non-transcoding, menghindari FFmpeg dan mengendalikan memori dengan zero-copy adalah bermanfaat.
Sumber: Habr — хаб ИИ — asli
Postingan kami sebelumnya tentang topik ini ↓
Berita terbaru