linux优化⽹络参数udp,AIXLINUXHP⽹络参数优化
⼀、AIX下的⽹络参数优化
oracle推荐设置:
/usr/sbin/no -p -o udp_ndspace=1048576
/usr/sbin/no -p -o udp_recvspace=1048576
/usr/sbin/no -p -o tcp_ndspace=1048576
/usr/sbin/no -p -o tcp_recvspace=1048576
/usr/sbin/no -p -o rfc1323=1
/usr/sbin/no -p -o sb_max=4194304
/usr/sbin/no -r -o ipqmaxlen=512
上⾯的修改是针对全局进⾏的设置,全局设置⽆法应⽤到具体的⽹络接⼝上。还需要针对具体的⽹络接⼝进⾏设置,可以使⽤下⾯的命令来进⾏设置:
chdev -l en0 -a tcparecvspace=1048576 -a rfc1323=1 -a
tcp_recvspace=1048576
建议使⽤smitty命令进⾏修改,具体的命令如下:
smitty chinet
检查设置的结果:
no –L 检查设置结果
ifconfig –a检查设置结果
针对上⾯修改的参数说明:
tcp_ndspace
——控制内核中⽤于缓冲应⽤程序数据的缓冲区空间⼤⼩。您可能希望使其超过缺省值,因为如果达到了限制值,发送应⽤程序则将挂起数据传输,直到
TCP 将数据发送到缓冲区为⽌。
tcp_receivespace ——除了控制接收缓冲区所消耗的缓冲区空间总量之外,AIX
enthusiast还使⽤这个值来确定其传输窗⼝的⼤⼩。
try to doudp_ndspace ——对于UDP,您可以将这个参数设置为不超过 65536 的值,因为每个 IP 数据包的上限为
65536 个字节。
udp_resvspace ——这个值应该⼤于 udp_ndpsace,因为它需要处理每套接字的、尽可能多的同步 UDP
数据包。可以简单地将这个参数设置为 udp_ndspace 值的 10 倍。
sb_max
——可调参数为排队等待单个套接字的套接字缓冲区数⽬设置上限,⽽这个上限可以控制缓冲区(排队等待发送者或者接收的套接字)所使⽤的缓冲区空间总量。这个总量通常应该⼩于
wall,并且近似于tcp 或者 udp 发送和接收设置最⼤值的 4 倍。例如,如果您的 udp_recvspace 是
655360,那么将其加倍到 1310720 是没有问题的。
rfc1323 ——可调参数⽀持 TCP 窗⼝缩放选项,该选项允许 TCP 使⽤较⼤的窗⼝⼤⼩。开启这个选项,以⽀持最佳的TCP 性能。
ipqmaxlen ——Specifies the number of received packets that can
be queued on the IP protocol input queue. Default: 150.
⼆、Linux下的⽹络优化参数配置:
具体设置,vi /f
# recommended to increa this for 1000 BT or higher
p_tw_recycle = 1
p_tw_reu = 1
p_wmem = 4096 65536 25165824
p_rmem = 4096 25165824 25165824
p_sack =1
p_window_scaling = 1
p_fack =1
p_mem 24576 32768 49152
具体的含义介绍如下:
p_tw_recycle = 1
p_tw_reu = 1
p_wmem = 4096 65536 25165824 #为⾃动调优定义每个
socket 使⽤的内存。第⼀个值是为socket 的发送缓冲区分配的最少字节数。第⼆个值是默认值(该值会被 wmem_default 覆盖),缓冲区在系统负载不重的情况下可以增长到这个值。第三个值是发送缓冲区空间的最⼤字节数(该值会被wmem_max 覆盖)。
p_rmem = 4096 25165824 25165824 #与 tcp_wmem美式英语音标
类似,不过它表⽰的是为⾃动调优所使⽤的接收缓冲区的值。
美丽中国纪录片
p_sack =1 #启⽤有选择的应答(Selective
Acknowledgment),这可以通过有选择地应答乱序接收到的报⽂来提⾼性能(这样可以让发送者只发送丢失的报⽂段);(对于⼴域⽹通信来说)这个选项应该启⽤,但是这会增加对
CPU 的占⽤。
p_window_scaling = 1 #启⽤RFC1323定义,⽀持超过64K窗⼝
p_fack =1 #启⽤转发应答(Forward
Acknowledgment),这可以进⾏有选择应答(SACK)从⽽减少拥塞情况的发⽣;这个选项也应该启⽤。
p_mem 24576 32768 49152 确定 TCP
栈应该如何反映内存使⽤;每个值的单位都是内存页(通常是
wap歌词直白翻译
4KB)。第⼀个值是内存使⽤的下限。第⼆个值是内存压⼒模式开始对缓冲区使⽤应⽤压⼒的上限。第三个值是内存上限。在这个层次上可以将报⽂丢弃,从⽽减少对内存的使⽤。对于较⼤的
BDP 可以增⼤这些值(但是要记住,其单位是内存页,⽽不是字节)。
三、HP下的⽹络参数优化
ndd -t /dev/tcp tcp_conn_request_max
10240
ndd -get /dev/tcp tcp_conn_request_max
ndd -t /dev/tcp tcp_syn_rcvd_max 1024
ndd -get /dev/tcp tcp_syn_rcvd_max
ndd -t /dev/tcp tcp_time_wait_interval 60000
ndd -get /dev/tcp tcp_time_wait_interval
ndd -t /dev/tcp tcp_xmit_hiwater_def 65536
ndd -get /dev/tcp tcp_xmit_hiwater_def
ndd -t /dev/tcp tcp_recv_hiwater_def 65536
ndd -get /dev/tcp tcp_recv_hiwater_def
ndd -t /dev/tcp tcp_xmit_lowater_def 24576
ndd -get /dev/tcp tcp_xmit_lowater_def
ndd -t /dev/tcp tcp_fin_wait_2_timeout
北洋燕园60000
ndd -get /dev/tcp tcp_fin_wait_2_timeout
ndd -t /dev/tcp tcp_keepalive_interval 60000
ndd -get /dev/tcp
tcp_keepalive_interval
ndd -t /dev/tcp tcp_ip_abort_interval 60000
ndd -get /dev/tcp tcp_ip_abort_interval
ndd -t /dev/tcp tcp_keepalive_detached_interval 60000
ndd -get /dev/tcp tcp_keepalive_detached_interval
ndd -t /dev/tcp tcp_rexmit_interval_initial 2000
ndd -get /dev/tcp tcp_rexmit_interval_initial
ndd -t /dev/tcp tcp_rexmit_interval_min 1500
ndd -get /dev/tcp tcp_rexmit_interval_min
ndd -t /dev/tcp tcp_rexmit_interval_max 10000
ndd -get /dev/tcp tcp_rexmit_interval_max
ndd -t /dev/sockets socket_caching_tcp 2048
ndd -get /dev/sockets socket_caching_tcp
上述的修改,将在操作系统重启后丢失。如果希望在操作系统重启后还能⽣效,需要将上述信息放到下⾯的配置⽂件中。参照下⾯已经给出的⼏条配置,有多少就写多少。
vi /fig.d/nddconf
TRANSPORT_NAME[0]=tcp
lunar eclip
NDD_NAME[0]=tcp_conn_request_max
NDD_VALUE[0]=10240
#
TRANSPORT_NAME[0]=tcp
NDD_NAME[1]=tcp_syn_rcvd_max
NDD_VALUE[1]=1024
#
TRANSPORT_NAME[0]=tcp
NDD_NAME[2]=tcp_time_wait_interval
NDD_VALUE[2]=1000
#
TRANSPORT_NAME[1]=tcp
NDD_NAME[3]tcp_fin_wait_2_timeout
NDD_VALUE[3]6000
#
TRANSPORT_NAME[2]=tcp
NDD_NAME[4]=tcp_recv_hiwater_def
NDD_VALUE[4]=1048576
#
TRANSPORT_NAME[3]=tcp
NDD_NAME[5]=tcp_xmit_hiwater_def
NDD_VALUE[5]=1048576
#
TRANSPORT_NAME[3]=tcp
NDD_NAME[6]=tcp_xmit_lowater_def
NDD_VALUE[6]=24576
#
TRANSPORT_NAME[4]=sockets
NDD_NAME[7]=socket_caching_tcp
NDD_VALUE[7]=1024
每个参数具体的含义可以在HP-UX B.11.31使⽤ndd -h parameter查看
=============================================================================
四:总结
1)不同平台下的优化主要是修改tcp⼤窗⼝发送⽀持。
railway是什么意思2)复制的速度,除了优化⽹络参数,还有更重要的⼀个因素:物理的交换机连接情况。在项⽬的优化中,必须要求参与复制的物理链路必须连接到同⼀个交换机上,不能分跨交换机。如果考虑到链路冗余,可以使⽤双⽹卡绑定,将两条链路分别连接到不同的交换机上,在交换机之间做trunk。
在我的测试中,发送的数据包⼤⼩为128K,两台主机(hp11.31)千兆光卡都连接到同⼀个Foundry
SX800上,获得的数据如下:
=================================================================
Total : MAX = 103.8 MB /
MIN = 95.5 MB / AVG = 102.4 MB
=================================================================
按照(三)给出的优化⽅法优化之后,速度也没有提升。因为这基本已经达到千兆光⼝的极限了。
如果分别连接到两个Foundry SX800上,速度降低很多:
=================================================================
Total : MAX =
68.2 MB / MIN = 59.9 MB / AVG =
63.7 MB
=================================================================
如果这时,按照(三)给出的优化⽅法调整参数,性能可以提升不少:狐狸爸爸
=================================================================
nobody什么意思Total : MAX =
87.1 MB / MIN = 39.5 MB / AVG =
83.5 MB
=================================================================