buf sizes update and capacity change
This commit is contained in:
+22
-16
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user