Chr*_*lan 14 linux networking rhel
txqueuelen可以应用的设置之间有什么区别:
ifconfig eth4 txqueuelen 5000
ip link set eth4 txqueuelen 5000
Run Code Online (Sandbox Code Playgroud)
以及tx可以应用的戒指尺寸设置:
ethtool -G eth4 tx 4096
Run Code Online (Sandbox Code Playgroud)
这些与全局/proc/sys/net/core/wmem*设置有何关系?
我在 RHEL6 上。
的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 本身的环形缓冲区设置环形条目的数量。