Estoy tratando de mejorar mi rendimiento TCP a través de una "red de alto retraso" entre máquinas Linux.
Configuré tcp_mem
, tcp_wmem
y tcp_rmem
"8192 7061504 7061504".
Me puse rmem_max
, wmem_max
, rmem_default
y wmem_default
para “7061504”.
Configuré netdev_max_backlog
y txqueuelen
en 10000.
Configuré tcp_congestion_control
en "escalable".
Estoy usando "nist" (cnistnet) para simular un retraso de 100 ms, y el BW que alcanzo es de aproximadamente 200mbps (sin demora alcanzo aproximadamente 790mbps).
Estoy usando iperf para realizar las pruebas y TCPTrace para analizar los resultados, y esto es lo que obtuve:
En el lado del receptor:
max win adv: 5294720 bytes
avg win adv: 5273959 bytes
sack paquetes enviados: 0
En el lado del remitente:
bytes de datos reales: 3085179704
bytes de datos rexmt: 9018144 propiedad
máxima: 5294577 bytes
propiedad promedio: 3317125 bytes
RTT mínima: 19,2 ms
RTT máxima: 218,2 ms
RTT promedio: 98,0 ms
¿Por qué solo alcanzo 200mbps? Sospecho que el "owin" tiene algo que ver con eso, pero no estoy seguro (estos resultados son de una prueba de 2 minutos. Una prueba de 1 minuto tuvo un "avg owin" de 1552900) ...
¿Me equivoco al esperar que el rendimiento sea de casi 790 mbps incluso si el retraso es de 100 ms?
(Intenté usar números más grandes en las configuraciones de la ventana, pero no pareció tener efecto)