首页 > 代码库 > 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 测试结果