hiệu suất TCP tốt hơn so với mạng chậm trễ cao


8

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_wmemtcp_rmemđể “8192 7061504 7061504”.
Tôi thiết lập rmem_max, wmem_max, rmem_defaultwmem_defaultđể “7061504”.
Tôi đặt netdev_max_backlogtxqueuelen10000.
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)


Bạn có phần cứng thực sự ở đây. TCP lấy cpu, NIC có bộ đệm riêng, ACPI có giới hạn riêng, v.v ..
J-16 SDiZ

Câu trả lời:


3

Đây là một vấn đề TCP phổ biến được gọi là "Ống mỡ dài". Nếu bạn Google cụm từ đó và TCP, bạn sẽ tìm thấy nhiều thông tin về vấn đề này và các giải pháp khả thi.

Chuỗi này có một loạt các tính toán và đề xuất về việc điều chỉnh ngăn xếp TCP TCP cho loại điều này.


1

Trang web

http://www.psc.edu/networking/projects/tcptune/

đề cập rằng như Linux hiện nay tự động cài đặt TCP, việc nhầm lẫn với các giá trị có thể sẽ không cải thiện mọi thứ.

Điều đó đang được nói, có thể 100 ms cùng với băng thông lớn (ít nhất là 790 mb / giây) có thể dẫn đến một BDP khổng lồ, vì vậy có thể tự động dò tìm quyết định rằng có điều gì đó không ổn và không đi đủ xa ..


Tùy thuộc vào phiên bản kernel, tôi đã thấy tính năng tự động điều chỉnh vượt quá 20MB.
pfo

Có vẻ như điều này đã chuyển sang psc.edu/index.php/networking/641-tcp-tune
dland

0

Hãy thử đặt kích thước cửa sổ iperf để thực sự gia công sản phẩm độ trễ băng thông của liên kết đó. Vì vậy, avg. RTT * 1Gbps sẽ cung cấp cho bạn khoảng 10 MB. Xem nếu điều đó cải thiện mọi thứ.


0

Cách duy nhất bạn thực sự có thể bắt đầu hiểu những gì đang diễn ra là lấy thêm dữ liệu - khác là bạn chỉ đoán hoặc yêu cầu người khác đoán. Tôi khuyên bạn nên có chế độ xem cấp hệ thống (cpu, bộ nhớ, ngắt, v.v.) sartừ iostatgói. Ngoài ra, bạn sẽ nhận được một kết xuất gói với Wireshark hoặc tcpdump. Sau đó, bạn có thể sử dụng Wireshark để phân tích nó vì nó có rất nhiều công cụ cho việc này. Bạn có thể vẽ biểu đồ kích thước cửa sổ theo thời gian, mất gói, v.v.

Ngay cả một mất gói nhỏ trên một liên kết độ trễ cao có xu hướng làm tổn thương băng thông khá nhiều. Mặc dù được mô phỏng - điều này hơi lạ. Rất nhiều gói nhỏ cũng có thể gây ra sự gián đoạn cao (mặc dù chúng cũng có thể được mô phỏng?).

Vì vậy, trong ngắn hạn, hãy lấy TCPDump và Sar để xem những gì đang diễn ra ở cấp gói và với tài nguyên hệ thống của bạn.


0

Máy này có bao nhiêu bộ nhớ? Các tcp_memcài đặt dường như điên rồ, nó được cấu hình 28gb (7061504 * 4kb) cho dữ liệu TCP trên toàn cầu. (Nhưng đây không phải là vấn đề hoàn hảo của bạn vì rất có thể bạn không đạt đến giới hạn đó khi chạy thử nghiệm một vài ổ cắm.

7mb bạn đã cấu hình mặc định có vẻ ổn. Tuy nhiên, mức tối đa có thể tăng cao hơn nhiều trên các ống có độ trễ lớn. Để kiểm tra tôi sẽ sử dụng 64MB làm số tối đa cho tcp_wmemtcp_rmemsau đó bạn có thể loại trừ rằng đây là yếu tố giới hạn của bạn. (Điều này không làm tăng bộ đệm của bạn, vì vậy nó chỉ hoạt động nếu bạn bị hạn chế đồng thời và kết nối có độ giật và giảm thấp).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.