buf sizes update and capacity change

This commit is contained in:
2026-04-05 17:21:10 +07:00
parent 2078a96f0e
commit aa66d93dbf
4 changed files with 29 additions and 43 deletions
+22 -16
View File
@@ -1,6 +1,5 @@
use std::sync::OnceLock;
use netrunner_logger::warn;
use std::sync::OnceLock;
pub static GLOBAL_NET_CONFIG: OnceLock<NetworkConfig> = OnceLock::new();
@@ -10,43 +9,50 @@ pub struct NetworkConfig {
pub tcp_buffer_size: usize,
pub udp_buffer_size: usize,
// Очереди MPSC
pub muxer_capacity: usize,
pub tcp_stream_capacity: usize,
pub udp_stream_capacity: usize,
pub smoltcp_socket_buf: usize,
pub tcp_chunk_size: usize,
pub tcp_buf_heavy: usize,
pub tcp_buf_light: usize,
// 👈 Разделяем буферы на RX (Чтение/Download) и TX (Запись/Upload)
pub tcp_rx_heavy: usize,
pub tcp_tx_heavy: usize,
pub tcp_rx_light: usize,
pub tcp_tx_light: usize,
pub udp_buf_heavy: usize,
pub udp_meta_heavy: usize,
pub udp_buf_light: usize,
pub udp_meta_light: usize,
}
impl NetworkConfig {
pub fn new(system_mtu: usize) -> Self {
let chunk_size = 16 * 1024;
let heavy_buf = 256 * 1024;
Self {
mtu: system_mtu,
tcp_buffer_size: 8 * 1024,
udp_buffer_size: 64 * 1024,
muxer_capacity: 32,
tcp_stream_capacity: 4,
udp_stream_capacity: 8,
// 1. Убиваем лаги Муксера: меньше сообщений в очереди
muxer_capacity: 256, // Было 32
tcp_stream_capacity: 16,
udp_stream_capacity: 32,
smoltcp_socket_buf: heavy_buf,
tcp_chunk_size: chunk_size,
// 2. Делаем чанки меньше для более быстрого срабатывания Backpressure
tcp_chunk_size: 4 * 1024, // Было 16KB
tcp_buf_heavy: heavy_buf,
tcp_buf_light: 32 * 1024,
// 3. АСИММЕТРИЧНЫЕ БУФЕРЫ TCP (Магия хорошего Upload)
tcp_rx_heavy: 256 * 1024, // 1 МБ! Качаем на все бабки (Быстрый Download)
tcp_tx_heavy: 32 * 1024, // 64 КБ! Микро-буфер отдачи (Убивает Bufferbloat на Upload)
udp_buf_heavy: heavy_buf,
tcp_rx_light: 16 * 1024,
tcp_tx_light: 16 * 1024,
udp_buf_heavy: 256 * 1024,
udp_meta_heavy: 512,
udp_buf_light: 16 * 1024,