性能测试连载(43)-tcp参数优化笔记

linux下tcp参数优化

vim /etc/sysctl.conf

#未收到客户端确认信息的连接请求的最大值
net.ipv4.tcp_max_syn_backlog=5000

#timewait数量
net.ipv4.tcp_max_tw_buckets = 6000

#改进tcp的拥塞控制机制
net.ipv4.tcp_sack =1

#tcp窗口大于64K,必须开启此值
net.ipv4.tcp_window_scaling = 1

#增加tcp最大缓冲区
net.ipv4.tcp_mem = 4096 67380 4194304
net.ipv4.tcp_rmem = 4096 67380 4194304
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_fin_timeout = 30

#内核放弃建立连接之前发送synack/syn包的数量
net.ipv4.tcp_synack_retries = 3
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_tw_reuse = 0

#设置文件最大句柄数
fs.file-max = 102400

#修改消息队列长度
kernel.msgmnb = 65536
kernel.msgmax = 65536

#设置最大内存共享段大小bytes
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.wmem_max = 16777216
net.core.rmem_max = 16777216

#设置同时发起的tcp连接数
net.core.somaxconn = 65535

windows下的tcp参数调整

TCPWindowSize
在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP\Parameters子键下创建名为TCPWindowSize的REG_DWORD值,该值的范围是从0到65535,将该值设置为62420。
缺省情况下,TCP将试图根据MSS来优化窗口大小,起始值为16KB,最大值为64KB。TCPWindowSize的最大值通常为65535字节(64KB),以太网最大段长度为1460字节,低于64KB的1460的最大整数倍为62420字节,因而可以在注册表中将TCPWindowSize设置为62420,作为高带宽网络中适用的性能优化值

TCP1323Opts
浏览至HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP\Parameters注册表子键。在Parameters子键下创建或修改名为TCP1323Opts的REG_DWORD值
该值的含义为:
0(缺省值)表示禁用TCP Window Scaling和时间戳;
1表示只启用TCP Window Scaling;
2表示只启用时间戳;
3表示同时启用TCP Window Scaling和时间戳。
TCP1323Opts设置为激活TCP Window Scaling后,可以将上文中的注册表项TCPWindowSize的值增大,最大能达到1GB,为了达到最佳性能,这里的值最好设置成MSS的倍数,推荐值为256960字节

TcpTimedWaitDelay
TcpTimedWaitDelay的值表示系统释放已关闭的TCP连接并复用其资源之前,必须等待的时间。这如果系统显示大量连接处于TIME_WAIT状态,会导致并发量与吞吐量的严重下降,通过减小该项的值,系统可以更快地释放已关闭的连接,从而为新连接提供更多的资源
在Parameters子键下创建或修改名为TcpTimedWaitDelay的REG_DWORD值,该值的范围是从0到300,建议将该值设置为30

MaxUserPort
该项的缺省值是十进制的5000,这也是系统允许的最小值。Windows默认为端口保留的端口号范围是从1024到5000。为了获得更高的并发量,建议将该值至少设为32768以上,甚至设为理论最大值65534
在Parameters子键下创建或修改名为MaxUserPort的REG_DWORD值,该值的范围是从5000到65534,缺省值为5000,建议将该值设置为65534

posted @ 2020-09-08 09:03  乐哈哈哈  阅读(183)  评论(0)    收藏  举报