« | August 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | | | | | |
| 公告 |
戒除浮躁,读好书,交益友 |
Blog信息 |
blog名称:邢红瑞的blog 日志总数:523 评论数量:1142 留言数量:0 访问次数:9696175 建立时间:2004年12月20日 |

| |
[java语言]jgroups网络性能的配置 原创空间, 软件技术, 电脑与网络
邢红瑞 发表于 2008/7/29 18:34:31 |
JGroups提供流量控制的功能,以太网有流控桢(数据链路层)。就是说接收方如果发现对方发得太快自己手不过来,会给对方发一个流控桢,让发送方暂时停止发送,自己处理完了之后再发解流控。很多网络接口和交换机提供流量控制,从而减少数据包的丢失。autonegotiation feature 对TCP和UDP,没有什末好处,TCP内置流量控制,802.3x重复了,其实也不起什末作用,另外TCP提供丢包重发功能。这也许对于UDP是件好事,因为UDP没有提供流量控制,但是jgourps自己提供了流量控制,,所以建议关闭以太网的流量控制功能。使用linux的ethtool,/sbin/ethtool -A eth0 autoneg off tx off rx off/sbin/ethtool -a eth0 查看是否关闭增大linux的UDP接收缓冲区sysctl -w net.core.rmem_max=5000000 ,系统缓冲设为5M, 可以将jgroups的缓冲设为1M。使用Jumbo frame以太网的MTU不能超过1500字节,严格说是1518,jumbo frames可以设计9000字节。ifconfig eth0 mtu 9000.
以太网的 MTU 值需要澄清一下。以太网规范中规定以太网帧负载的最大长度是1500字节。有时,你会看到以太网的MTU被定义成1518 或者1514:第一个数字包含了以太网帧的头部和检验和,而第二个数字包含了以太网帧的头部,但不包含校验和(四字节的校验和)。 在1998 年,Alteon Networks(2000年被Nortel Networks收购)提议将以太网帧的负载大小增加到9K字节。这个提案后来成为IETF的因特网草案,但是IEEE却没有接受它。IEEE规范中超过1500 字节的帧通常被成为jumbo 帧,这种帧用在千兆以太网中以增加通吐量。这是因为更大的帧意味着用更少的帧可以传输更多的数据,从而减少中断的数量,减少 CPU 的使用量,并减少头部数据的占用率。关于增加以太网的 MTU 可以带来的好处,以及为什么 IEEE 没有接受这个扩展的原因可以在白皮书 “在以太网中使用扩展的帧大小”中找到。这篇文章可以在网上搜索,或者使用这个链接: http://www.ietf.org/proceedings/01aug/I-D/draft-ietf-isis-ext-eth-01.txt.。增加网卡的 input buffer/sbin/ifconfig txqueuelen 5000unsigned long tx_queue_len 设备发送队列的长度。如果内核中包含了流量控制子系统,这个变量可能没有什么用(只有几个排队策略会使用它).用不用tx_queue_len与设备的接收,发送队列的排队策略有关。一般情况下都使用FIFO队列(先进先出)或者其他一些简单的队列。 虚拟设备的队列长度一般都是0:它们依赖于真实设备来完成包的缓存(loopback 设备是一个特例,它们不需要队列,因为发给它们的包一般都是在内核中立即发送的)。
|
|
» 1 »
|