ความแตกต่างระหว่าง net.core.rmem_max และ net.ipv4.tcp_rmem


14

ความแตกต่างระหว่าง net.core.rmem_max และค่าที่สามของ net.ipv4.tcp_rmem คืออะไร ข้อใดมีความสำคัญสูงกว่าสำหรับการเชื่อมต่อ tcp

สำหรับสองตัวอย่างด้านล่างบัฟเฟอร์สูงสุดสำหรับการเชื่อมต่อ 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'

ลำดับความสำคัญเกี่ยวข้องกับ tcp?
นิลส์

@ ไม่มีใช่สำหรับการเชื่อมต่อ tcp
bydsky

คำตอบ:


5

Core คือบัฟเฟอร์รับสูงสุดโดยรวมในขณะที่ tcp เกี่ยวข้องกับโปรโตคอลนั้น

สำหรับคำถามที่มีลำดับความสำคัญ: ดูเหมือนว่าการตั้งค่า tcp จะใช้ความระมัดระวังมากกว่าการตั้งค่าสูงสุดทั่วไปซึ่งค่อนข้างสับสน การตั้งค่าสูงสุดไม่มีผลต่อการตั้งค่า tcp ปัจจุบัน (เพิ่งทดสอบบน CentOS 5)

คำอธิบายที่ถูกต้องมากขึ้นน่าจะเป็น: default_max - แต่นั่นยาวเกินไป


1
คำอธิบายของคุณทำให้รู้สึก แต่นี้ขัดแย้งกับสิ่งที่man tcpกล่าวเกี่ยวกับ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- ดูstackoverflow.com/questions/31546835/... มันman tcpผิดหรือเปล่า?
nh2

@ nh2 นั่นจะไม่ใช่ครั้งแรกที่หน้าเว็บผิด
นิลส์

1
คุณทดสอบมันยังไงกันแน่?
Wildcard

1
@ Wildcard ฉันตั้งค่าและอ่านค่าอื่น ๆ หลังจากการตั้งค่าครั้งแรก
Nils

3
@ ไม่มีการอ่านค่าจะไม่บอกคุณว่ามีใครแทนที่อีก - คุณต้องพยายามรับบัฟเฟอร์ TCP ที่เกิน net.core จริง ๆ [wmem / rmem] _max บัฟเฟอร์เพื่อทดสอบการเอาชนะดังกล่าว
Jordan Pilat
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.