Tôi đang cố gắng cải thiện thông lượng TCP của mình qua một mạng chậm trễ cao giữa các máy Linux.
Tôi thiết lập tcp_mem
, tcp_wmem
và tcp_rmem
để “8192 7061504 7061504”.
Tôi thiết lập rmem_max
, wmem_max
, rmem_default
và wmem_default
để “7061504”.
Tôi đặt netdev_max_backlog
và txqueuelen
10000.
Tôi thiết lập tcp_congestion_control
để có thể mở rộng quy mô.
Tôi đang sử dụng hệ thống truyền thông trực tuyến (cnistnet) để mô phỏng độ trễ 100ms và tốc độ BW tôi đạt được là khoảng 200mbps (không chậm trễ, tôi đạt khoảng 790mbps).
Tôi đang sử dụng iperf để thực hiện các bài kiểm tra và TCPTrace để phân tích kết quả và đây là những gì tôi nhận được:
Về phía người nhận:
max win adv: 5294720 byte
avg win adv: 5273959 byte
sack pkts đã gửi: 0
Về phía người gửi:
byte dữ liệu thực tế: 3085179704
byte dữ liệu 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
Tại sao tôi chỉ đạt 200mbps? Tôi nghi ngờ rằng ow owin có liên quan đến nó, nhưng tôi không chắc (những kết quả này chỉ là thử nghiệm trong 2 phút. Thử nghiệm trong 1 phút đã có một trò chơi avg owin 155 của 1552900)
Tôi có sai không khi dự đoán thông lượng sẽ đạt gần 790mbps ngay cả khi độ trễ là 100ms?
(Tôi đã thử sử dụng số lớn hơn trong cấu hình cửa sổ nhưng dường như không có hiệu lực)