首页 > 代码库 > socket buffer size对带宽的影响:iperf 测试结果

socket buffer size对带宽的影响:iperf 测试结果

在刀片2的 cmm02node06--->cmm02node01 两个结点上,将包长固定在2KB, 用-w选项改变socket buffer size大小,用iperf软件测试两个节点之间的tcp传输带宽,观察随着socket buffer size的变化,传输带宽的变化情况:

1. 只改变发送端的socket buffer size;

2. 只改变接收端的socket buffer size;

3. 同时改变发送端和接收端的socket buffer size.

在不改变发送和接收缓冲区的大小时:

发送端默认的发送缓冲区大小为19.3KB

接收端默认的接收缓冲区大小为85.3 KB

通过-w win 设置缓冲区大小时,若设置成功,缓冲区大小将被设置为(2*win)Byte; 若设置失败,则缓冲区大小不确定。通过不断增大win值,测得,cmm02node01和cmm02node06的缓冲区大小最大为1GB,继续增大win值时,设置的缓冲区大小反而变小了。证明1GB是这两个服务器的发送缓冲区和接收缓冲区的上限。《unix 网络编程卷一:P164》

当 win 为 1KB 时,应将发送缓冲区大小设置为2KB,发现实际上却被设置为2.23KB.  (why?不知道)

1. 只改变发送端的socket buffer size时,接收端的缓冲区大小为85.3KB。

在 发送缓冲区 <1MB 时, 随着发送缓冲区的增加,带宽逐渐缓慢增加;

在发送缓冲区 > 1MB 后,带宽较快的变大。

win 值 为 1GB 时, 发送缓冲区被设置为 2KB, 带宽减小到 219 Mb/s。

技术分享

2. 只改变接收端的socket buffer size时, 发送端的缓冲区大小为19.3KB。

随着接收端缓冲区大小的增加,带宽先增加,后降低;在256KB时,达到最大值。在接收缓冲区大于256KB后,带宽的趋势是突然降低,并随后保持在较低水平。

技术分享

socket buffer size对带宽的影响:iperf 测试结果