Sto cercando di migliorare il mio throughput TCP su una "rete ad alto ritardo" tra macchine Linux.
Ho impostato tcp_mem
, tcp_wmem
ed tcp_rmem
a “8192 7.061.504 7.061.504”.
Ho impostato rmem_max
, wmem_max
, rmem_default
e wmem_default
a “7.061.504”.
Ho impostato netdev_max_backlog
e txqueuelen
su 10000.
Ho impostato tcp_congestion_control
su "scalabile".
Sto usando "nist" (cnistnet) per simulare un ritardo di 100 ms e il BW che raggiungo è di circa 200 Mbps (senza ritardo raggiungo circa 790 Mbps).
Sto usando iperf per eseguire i test e TCPTrace per analizzare i risultati, ed ecco cosa ho ottenuto:
Sul lato ricevitore:
max win adv: 5294720 byte
avg win adv: 5273959 byte
sacchi pkts inviati: 0
Sul lato mittente:
byte di dati effettivi: 3085179704
byte di dati rexmt: 9018144
max owin: 5294577 byte
avg owin: 3317125 byte
RTT min: 19.2 ms
RTT max: 218.2 ms
RTT avg: 98.0 ms
Perché raggiungo solo 200 Mbps? Ho il sospetto che "owin" abbia qualcosa a che fare con esso, ma non sono sicuro (questi risultati sono di un test di 2 minuti. Un test di 1 minuto aveva un "avg owin" di 1552900) ...
Sbaglio se mi aspetto che il throughput sia quasi 790 Mbps anche se il ritardo è di 100 ms?
(Ho provato a usare numeri più grandi nelle configurazioni della finestra ma non sembrava avere effetto)