Diferența dintre net.core.rmem_max și net.ipv4.tcp_rmem (Administrarea sistemului, Linux, Rețele Linux, Tcp, Kernel Linux)

bydsky a intrebat.
a intrebat.

Care este diferența dintre net.core.rmem_max și cea de-a treia valoare a net.ipv4.tcp_rmem? Care are prioritate mai mare pentru conexiunile tcp?

Pentru cele două exemple de mai jos, care este bufferul maxim pentru conexiunile tcp?

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'

Comentarii

  • Prioritatea legată de tcp? –  > Por Nils.
  • @Nils Da, pentru conexiunile tcp. –  > Por bydsky.
1 răspunsuri
Nils

Core este buffer-ul maxim general de recepție, în timp ce tcp se referă doar la acel protocol.

În ceea ce privește întrebarea privind prioritatea: Se pare că setarea tcp va avea prioritate față de setarea max comună, ceea ce este un pic confuz. Setarea max nu are niciun efect asupra setării tcp curente (tocmai am testat-o pe CentOS 5).

O descriere mai corectă ar fi fost: default_max – dar probabil că a fost prea lungă.

Comentarii

  • Explicația dvs. are sens, dar acest lucru intră în conflict cu ceea ce man tcp spune despre tcp_rmem‘s max’: the maximum size of the receive buffer used by each TCP socket. This value does not override the global net.core.rmem_max – vezi și stackoverflow.com/questions/31546835/…. Este man tcp greșit? –  > Por nh2.
  • @nh2 Aceasta nu ar fi prima dată când o pagină de manual este greșită. –  > Por Nils.
  • Cum ați testat-o mai exact? –  > Por Wildcard.
  • @Wildcard Am setat valoarea și am citit cealaltă valoare după Setări prima –  > Por Nils.
  • @Nils, simpla citire a valorilor nu vă va spune dacă una se suprapune celeilalte – trebuie să încercați efectiv să obțineți un buffer TCP care să depășească bufferul net.core.[wmem/rmem]_max pentru a testa o astfel de suprapunere. –  > Por Jordan Pilat.