tcp_mem มีความสำคัญมากกว่าเนื่องจากเป็นตัวกำหนดว่าสแต็ก tcp ควรทำงานอย่างไรเมื่อใช้งานหน่วยความจำ บัฟเฟอร์การส่งและรับ IMO ควรเป็น tcp_mem หลายตัว นี่คือการเชื่อมโยงไปสูตรสำหรับบัฟเฟอร์รับ: http://www.acc.umu.se/~maswan/linux-netperf.txt ในระยะสั้น:
ค่าใช้จ่ายคือ: window / 2 ^ tcp_adv_win_scale (tcp_adv_win_scale ค่าเริ่มต้นคือ 2) ดังนั้นสำหรับพารามิเตอร์เริ่มต้นของ linux สำหรับหน้าต่าง recieve (tcp_rmem): 87380 - (87380/2 ^ 2) = 65536 ได้รับลิงค์ข้ามมหาสมุทรแอตแลนติก (150 ms RTT) ประสิทธิภาพสูงสุดสิ้นสุดที่: 65536 / 0.150 = 436906 bytes / s หรือประมาณ 400 kbyte / s ซึ่งช้ามากในวันนี้ ด้วยขนาดเริ่มต้นที่เพิ่มขึ้น: (873800 - 873800/2 ^ 2) /0.150 = 4369000 bytes / s หรือประมาณ 4Mbytes / s ซึ่งเป็นเครือข่ายที่ทันสมัย และโปรดทราบว่านี่เป็นค่าเริ่มต้นหากผู้ส่งได้รับการกำหนดค่าด้วยขนาดหน้าต่างที่ใหญ่ขึ้นมันจะขยายได้อย่างมีความสุขมากถึง 10 เท่า (8738000 * 0.75 / 0.150 = ~ 40Mbytes / s) ค่อนข้างดีสำหรับเครือข่ายที่ทันสมัย
นี่คือสิ่งที่บทความพูดเกี่ยวกับ tcp_mem:
สิ่งที่คุณลบคือขีด จำกัด เทียมสำหรับประสิทธิภาพการทำงานของ TCP โดยไม่ จำกัด ว่าคุณจะถูก จำกัด ด้วยแบนด์วิดท์และการสูญเสียแบบ end-to-end ที่มีอยู่ ดังนั้นคุณอาจสิ้นสุดการอัปลิงค์อัปลิงค์ได้อย่างมีประสิทธิภาพ แต่ tcp สามารถจัดการสิ่งนี้ได้ดี
IMO ค่า tcp_mem กลางที่ใหญ่กว่าจะเร่งความเร็วการเชื่อมต่อเมื่อสูญเสียความปลอดภัยน้อยลงและเพิ่มการใช้หน่วยความจำเล็กน้อย
คุณสามารถตรวจสอบเครือข่ายสแต็คด้วย:
grep skbuff /proc/slabinfo