怎样调整TCP和UDP协议的全局发送/接收窗口大小?
linux下的解决方法:
发送/接收窗口大小由/proc文件系统控制。相应的变量路径是:
/proc/sys/net/core/rmem_default
接收的窗口尺寸
/proc/sys/net/core/rmem_max
接收的窗口尺寸最大值
/proc/sys/net/core/wmem_default
发送的窗口尺寸
/proc/sys/net/core/wmem_max
发送的窗口尺寸最大值
你可以cat相应的文件查看当前的设置值。可以使用echo一个数字到对应文件的方式,改变该设置值。例如,将接收的窗口尺寸改成128K,执行:
# echo 131070 > /proc/sys/net/core/rmem_default
TCP动态改变窗口大小以避免网络拥挤。它使用rmem_default和wmem_default的值初始化窗口大小,并且窗口永远不会大于rmem_max和wmem_max。而UDP不会改变它的窗口尺寸,它使用rmem_default和wmem_default作为它的窗口尺寸大小。
/proc/sys/net/core/目录下也有:rmem_max, wmem_max, rmem_default, wmem_default几项,你改这些值试试看,这可能是调整驱动层缓冲区的,/proc/sys/net/ipv4中应该可以调整你的tcp_socket的缓冲区(UDP不缓冲)
如:
[feng@localhost core]$ pwd
/proc/sys/net/core
[feng@localhost core]$ cat rmem_default
262144
[feng@localhost core]$ cat rmem_max
4194304
[feng@localhost core]$ cat wmem_default
262144
[feng@localhost core]$ cat wmem_max
1048576
阅读(1818) | 评论(0) | 转发(0) |