Saya mencoba untuk meningkatkan throughput TCP saya melalui "jaringan penundaan tinggi" antara mesin-mesin Linux.
Saya mengatur tcp_mem
, tcp_wmem
dan tcp_rmem
ke "8192 7061504 7061504".
Aku mengatur rmem_max
, wmem_max
, rmem_default
dan wmem_default
untuk “7061504”.
Saya mengatur netdev_max_backlog
dan txqueuelen
ke 10000.
Saya mengatur tcp_congestion_control
ke "scalable".
Saya menggunakan "nist" (cnistnet) untuk mensimulasikan penundaan 100 ms, dan jangkauan BW saya sekitar 200mbps (tanpa penundaan saya mencapai sekitar 790mbps).
Saya menggunakan iperf untuk melakukan tes dan TCPTrace untuk menganalisis hasilnya, dan inilah yang saya dapatkan:
Di sisi penerima:
maks win adv: 5294720 bytes
avg win adv: 5273959 bytes
pkts pkts terkirim: 0
Di sisi pengirim:
byte data aktual: 3085179704
byte data rexmt: 9018144
maks owin : 5294577 byte
avg owin: 3317125 byte
RTT min: 19,2 ms
RTT maks: 218,2 ms
RTT avg: 98,0 ms
Mengapa saya hanya mencapai 200mbps? Saya menduga "owin" ada hubungannya dengan itu, tapi saya tidak yakin (hasil ini adalah tes 2 menit. Tes 1 menit memiliki "avg owin" dari 1552900) ...
Apakah saya salah untuk mengharapkan throughput hampir 790mbps bahkan jika penundaannya 100ms?
(Saya mencoba menggunakan angka yang lebih besar dalam konfigurasi jendela tetapi tampaknya tidak berpengaruh)