ความแตกต่างระหว่าง txqueuelen และ ethtool tx


12

ความแตกต่างระหว่างการtxqueuelenตั้งค่าที่สามารถใช้ได้กับ:

ifconfig eth4 txqueuelen 5000
ip link set eth4 txqueuelen 5000

และการtxตั้งค่าขนาดแหวนที่สามารถใช้ได้กับ:

ethtool -G eth4 tx 4096

สิ่งเหล่านี้เกี่ยวข้องกับการ/proc/sys/net/core/wmem*ตั้งค่าส่วนกลางอย่างไร

ฉันใช้ RHEL6

คำตอบ:


6

การตั้งค่าnet.core.wmem_defaultและwmem_maxควบคุมขนาดบัฟเฟอร์เริ่มต้นและสูงสุดของบัฟเฟอร์ซ็อกเก็ต TX เป็นไบต์ ในขณะที่คิวนั้นเป็นเพียงรายการเชื่อมโยงของพskbอยน์เตอร์เคอร์เนลยังติดตามจำนวนไบต์ทั้งหมดที่ใช้โดยskb's ขณะที่กำลังเพิ่มและลบออกจากบัฟเฟอร์ซ็อกเก็ต wmem_defaultsysctl กำหนดเพดานเริ่มต้นเริ่มต้นสำหรับซ็อกเก็ตใหม่ ( net/core/sock.c:sock_init_data()) แอปพลิเคชันได้รับอนุญาตให้เพิ่มขนาดของบัฟเฟอร์ของซ็อกเก็ตและwmem_maxเป็นเพดานสำหรับการทำงานนั้น ( net/core/sock.c:sock_setsockopt())

เมื่อแพ็กเก็ตถูกลบออกจากซ็อกเก็ตบัฟเฟอร์และหาทางผ่านสแต็กเครือข่ายเคอร์เนลมันจะถูกวางลงบนคิวการส่งผ่านเพื่อให้อินเตอร์เฟสรอให้โหลดลงบน NIC txqueuelenชุดโดยifconfigหรือipคำสั่งเป็นจำนวนเฟรมได้รับอนุญาตต่อคิวส่งเคอร์เนลวินัยเข้าคิว ( net/sched/sch_generic.c:pfifo_fast_enqueue())

สุดท้าย ethtool -Gใช้ ioctl เพื่อตั้งค่าจำนวนรายการแหวนสำหรับบัฟเฟอร์แหวนบน NIC เอง


2

ฉันรู้ว่าฉันควรจะให้คำอธิบายที่ลากยาวออก แต่ D Seimon มีอยู่แล้ว กล่าวโดยย่อtxqueuelenคือขนาดบัฟเฟอร์ แพ็คเก็ตเครือข่ายทั้งหมดพอดีกับบัฟเฟอร์นี้ในขณะtxที่ขนาดแพ็คเก็ตของ IP Packet ที่ไปในบัฟเฟอร์ดังกล่าว นั่นคือถ้าฉันเข้าใจโพสต์นั้นถูกต้อง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.