Answers:
的net.core.wmem_default
和wmem_max
设置控制TX插座缓冲器以字节为单位的初始和最大尺寸。尽管队列本身只是skb
指针的链接列表,但内核也会跟踪skb
s在套接字缓冲区中添加和删除时所消耗的总字节大小。该wmem_default
sysctl的设置了新的套接字默认初始上限(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上环形缓冲区的环形条目数。
我知道我应该给出一个详尽的解释,但是D a Seimon已经有了。简而言之txqueuelen
是缓冲区大小。所有网络数据包都适合此缓冲区,而在该缓冲区tx
中的IP数据包的数据包大小就是。也就是说,如果我正确理解了该帖子。