网络性能调优

iperf

#测试最大TCP和UDP吞吐量的开源工具
#安装
yum install iperf

服务端:
在这里插入图片描述
客户端:
在这里插入图片描述

  • -c host:连接到主机名或IP地址
  • -l 128k:使用128kb套接字缓冲
  • -p 2:运行于两个客户机线程的并行模式
  • -i 1:每秒打印时间间隔总结
  • -t 60:总测试时间,60s

可调参数用sysctl命令查看和设置,并写入到/etc/sysctl.conf;也能在/proc/sys/net下读写。

  • 套接字和TCP缓冲
    所有协议类型 读(rmem_max) 写 (wmem_max) 的最大套接字缓冲设置:
#单位字节,为支持全速率的10Gbe连接,这可能需要设置到16MB或更高
net.core.rmem_max=1677216
net.core.wmem_max=1677216

#启用TCP接收缓冲的自动调整
tcp_moderate_rcvbuf=1

#为TCP读和写缓冲设置自动调优参数
#每个参数有三个数值:最小、默认、最大字节数,长度从默认值自动调整
#要提高吞吐量尝试增加最大值,增加最小值和默认值会使每个连接消耗更多不必要的内存
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 87380 16777216
  • TCP积压队列
#首个积压队列,半开连接
tcp_max_syn_backlog=4096
#第二个积压队列,传递连接给accept()的监听积压队列
net.core.somaxconn=1024
#以上两者或许都需要由默认值调高,以便更好地处理突发的负载
  • 设备积压队列
#增加没CPU的网络设备积压队列长度
#为了10GbE的NIC,这可能要增加到10000
net.core.netdev_max_backlog = 10000
  • TCP阻塞控制
#linux支持可插入的阻塞控制算法
#列出当前可用:
sysctl net.ipv4.tcp_available_congestion_control
#一些可能支持但为加载,如添加htcp
modprobe tcp_htcp

在这里插入图片描述

  • TCP选项
    其他可设置的TCP参数包括SACK和FACK扩展,它们能以一定CPU为代价在高延时的网络中提高吞吐性能
net.ipv4.tcp_sack=1
net.ipv4.tcp_fack=1
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_tw_recycle=1

安全时tcp_tw_reuse可调参数能重利用一个TIME-WAIT会话,这使得两个主机间有更高的连接率,如web服务器和数据库服务器之间,而且不会达到16b的TIME-WAIT会话临时端口极限。

  • 网络接口
#TX队列长度可以用ifconfig增加,如:
ifconfig eth0 txqueuelen 10000
#对于10GbE NIC这可能是必需的,该设置可以添加到/etc/rc.local以便在启动时应用
  • 资源控制
    控制组(cgroups)的网络优先级(net_prio)子系统能对进程或者进程组的出站网络通信应用优先级。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值