Sự khác biệt giữa net.core.rmem_max và net.ipv4.tcp_rmem


14

Sự khác biệt giữa net.core.rmem_max và giá trị thứ ba của net.ipv4.tcp_rmem là gì? Cái nào có mức độ ưu tiên cao hơn cho các kết nối tcp?

Đối với hai ví dụ dưới đây, bộ đệm tối đa cho các kết nối tcp là gì?

Case 1:
sysctl -w net.core.rmem_max=7388608
sysctl -w net.ipv4.tcp_rmem='4096 87380 8388608'

Case 2:
sysctl -w net.core.rmem_max=8388608
sysctl -w net.ipv4.tcp_rmem='4096 87380 7388608'

Ưu tiên liên quan đến tcp?
Nils

@Nils Có, cho các kết nối tcp.
bydsky

Câu trả lời:


5

Core là bộ đệm nhận tối đa tổng thể, trong khi tcp chỉ liên quan đến giao thức đó.

Đối với câu hỏi ưu tiên: Có vẻ như cài đặt tcp sẽ được ưu tiên hơn cài đặt tối đa chung, điều này hơi khó hiểu. Cài đặt max không có hiệu lực đối với cài đặt tcp hiện tại (vừa được thử nghiệm trên CentOS 5).

Một mô tả chính xác hơn sẽ là: default_max - nhưng điều đó có thể quá dài.


1
Giải thích của bạn có ý nghĩa, nhưng điều này mâu thuẫn với những gì man tcpnói về tcp_rmemgiá trị tối đa của nó: the maximum size of the receive buffer used by each TCP socket. This value does not override the global net.core.rmem_max- xem thêm stackoverflow.com/questions/31546835/ . Là man tcpsai?
nh2

@ nh2 Đó không phải là lần đầu tiên trang nam bị lỗi.
Nils

1
Làm thế nào chính xác bạn đã kiểm tra nó?
tự đại diện

1
@Wildcard Tôi đặt giá trị và đọc giá trị khác sau Cài đặt đầu tiên
Nils

3
@Nils, chỉ cần đọc các giá trị sẽ không cho bạn biết nếu cái này ghi đè lên cái khác - bạn thực sự phải cố gắng để có bộ đệm TCP vượt quá net.core. [Wmem / rmem] _max để kiểm tra ghi đè đó.
Jordan Pilat
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.