我注意到broadcom和Intel NIC都允许您调优发送和接收缓冲区的数量(更多的缓冲区将导致更多的内存使用)。
这些缓冲区是如何工作的:
发布于 2011-02-26 22:01:09
嗯,关于网卡缓冲区有一些建议,表明更多是更好的,一般来说:
http://book.opensourceproject.org.cn/sysadmin/apache/apachetomcat/opensource/090.html
将Web服务器上的网络接口卡上的接收缓冲区设置为最大。这减少了丢弃数据包的数量,减少了TCP重传。您可以设置此参数,方法是启动“设置”、“设置”、“控制面板”、“网络”和“拨号连接”。选择通常称为局域网连接的活动局域网连接。右击可选择“属性”。单击“网络接口卡”旁边的“配置”按钮。将接收缓冲区设置为最大值1024。..。你可能会想知道在做上面的事情时会有什么取舍。交换条件是操作系统需要为NIC接收缓冲区和用户端口分配更多的内存。
发布于 2011-03-14 19:25:16
RX和TX缓冲区一般等同于一个以太网帧。如果您已经将RX缓冲区计数配置为512,那么驱动程序将预留足够的缓冲区来处理512以太网帧。由于不同的NIC使用不同的缓冲区描述符数据结构,因此内存量将略有变化,但通常您应该将缓冲区大小乘以MTU来估计所需的内存量。
戴夫
发布于 2011-03-16 19:58:57
如果您有代码访问权限,那么也有有用的SO_RCVBUF选项,特别是在Windows上。
顺便说一句,有人知道NIC和SO_RCVBUF选项中RX缓冲区的关系是什么?(WskControlSocket/getsockopt)
https://serverfault.com/questions/240595
复制相似问题