Net.core.rmem_max ve net.ipv4.tcp_rmem arasındaki fark


14

Net.core.rmem_max ve net.ipv4.tcp_rmem'in üçüncü değeri arasındaki fark nedir? Tcp bağlantıları için hangisi daha yüksek önceliğe sahiptir?

Aşağıdaki iki örnek için, tcp bağlantıları için maksimum arabellek nedir?

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'

TCP ile ilgili öncelikler nelerdir?
Nils

@Nils Evet, tcp bağlantıları için.
bydsky

Yanıtlar:


5

Tcp sadece bu protokolle ilgili iken, çekirdek toplam maksimum alma tamponudur.

Öncelikli soruya gelince: Görünüşe göre tcp ayarı, ortak maksimum ayardan daha öncelikli olacak ve bu biraz kafa karıştırıcı. Max ayarının geçerli tcp ayarı üzerinde bir etkisi yoktur (sadece CentOS 5 üzerinde test edilmiştir).

Daha doğru bir açıklama olurdu: default_max - ama bu muhtemelen çok uzun.


1
Açıklamanız mantıklı, ancak bu maksimum değeri man tcphakkında söylenenlerle çelişiyor tcp_rmem: the maximum size of the receive buffer used by each TCP socket. This value does not override the global net.core.rmem_max- ayrıca bkz . Stackoverflow.com/questions/31546835/… . Mı man tcpyanlış?
nh2

@ nh2 Bir man sayfasının yanlış olduğu ilk sefer olmazdı.
Nils

1
Tam olarak nasıl test ettin?
Joker

1
@Wildcard İlk ayarlardan sonra değeri ayarladım ve diğer değeri okudum
Nils

3
@Nils, sadece değerleri okumak size bir başkasını geçersiz kılarsa bunu söylemez - aslında bu geçersiz kılmayı test etmek için net.core'u aşan bir TCP arabelleği almaya çalışmanız gerekir.
Jordan Pilat
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.