网络的调优
1.Bonding技术
网卡绑定技术,它的功能有:
双线冗余 带宽增备
网卡绑定也称作"网卡捆绑",就是使用多块物理网卡虚拟成为一块网卡,以提供负载均衡或者冗余,增加带宽的作用。当一个网卡坏掉时,不会影响业务。这个聚合起来的设备看起来是一个单独的以太网接口设备,也就是这几块网卡具有相同的IP地址而并行链接聚合成一个逻辑链路工作。这种技术在Cisco等网络公司中,被称为Trunking和Etherchannel 技术,在Linux的内核中把这种技术称为bonding Trunking(链路聚集)
那么这里就有两个技术分类
1. 负载均衡
2. 网络冗余
配置多网卡绑定技术实例
①. 添加网卡(同样的链接方式)
②. 加载bonding模块
modinfo bonding | grep .ko
#查看是否有bonding模块
filename: /lib/modules/2.6.32-431.el6.x86_64/kernel/drivers/net/bonding/bonding.ko
modprobe bonding
echo "modprobe bonding &> /dev/null" >> /etc/rc.local
#加载/自动加载bonding模块
lsmod | grep bond
#查看是否加载成功
③.编辑模块载入配置文件,让系统支持bonding
vim /etc/modprobe.conf
#文件不存在,新建
添加:
alias bond0 bonding
options bonding miimon=100 mode=balance-rr
#mode=balance-rr 或mode=0 这里我采用这种rr轮循模式, 此模式提供负载平衡和容错。 此模式下所以网卡共用一个MAC地址,后面结果会有验证!
#miimon是用来进行链路监测的,如:miimon=100,那么系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路;
#bonding只能提供链路监测,即从主机到交换机的链路是否接通。如果只是交换机对外的链路down掉了,而交换机本身并没有故障,那么bonding会认为链路没有问题而继续使用。
④.修改网卡配置文件
vim /etc/sysconfig/network-scripts/ifcfg-bond0
#新建bond0虚拟聚合网卡配置文件,必须和载入配置文件中的alias对应
添加:
DEVICE=bond0
IPADDR=192.168.1.63
NETMASK=255.255.255.0
GATEWAY=192.168.1.254
DNS1=192.168.1.254
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
#是否允许非root用户控制该设备
vim /etc/sysconfig/network-scripts/ifcfg-eth0
#修改eth0网卡配置文件
修改为:
DEVICE=eth0
USERCTL=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes
BOOTPROTO=none
vim /etc/sysconfig/network-scripts/ifcfg-eth1
#修改eth1网卡配置文件
修改为:
DEVICE=eth1
USERCTL=no
ONBOOT=yes
MASTER=bond0
SLAVE=yes
BOOTPROTO=none
⑤.重启网络服务
service network restart
如果无法启动则:
/etc/init.d/NetworkManager stop
chkconfig NetworkManager off
ifconfig
#bond0和eth0、eth1的MAC地址一样
⑥.测试
测试高可用
[root@localhost ~]# ping 192.168.1.254 //ping着,然后断开一个网卡
这个过程并没有出现Ping丢包,发现通信正常,没有问题。说明多网卡绑定成功
拓展:
mode=0 : 可实现网络负载均衡和网络冗余,采用平衡轮循策略(balance-rr)。
此模式的特点:
a. 所以网卡都工作,传输数据包顺序是依次传输,也就是说第1个包经过eth0,下一个包就经过eth1,一直循环下去,直到最后一个包传输完毕。
b. 此模式对于同一连接从不同的接口发出的包,中途传输过程中再经过不同的链接,在客户端很有可能会出现数据包无序到达的问题,而无序到达的数据包需要重新要求被发送,这样网络的吞吐量就会下降。
c. 与网卡相连的交换必须做特殊配置(这两个端口应该采取聚合方式),因为做bonding的这两块网卡是使用同一个MAC地址
2.内网提速之巨帧Jumbo Frame
修改网卡帧数可以提高网卡传输速度
查看帧数MTU
MTU,即Maximum Transmission Unit(最大传输单元),此值设定TCP/IP协议传输数据报时的最大传输单元。
系统与ISP之间MTU的不符就会直接导致数据在网络传输过程中不断地进行分包、组包,浪费了宝贵的传输时间,也严重影响了宽带的工作效率。
ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0C:29:D7:42:30
inet addr:192.168.1.63 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fed7:4230/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:298 errors:0 dropped:0 overruns:0 frame:0
TX packets:42 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:33737 (32.9 KiB) TX bytes:3277 (3.2 KiB)
修改网卡帧数
ifconfig eth0 mtu 9000
ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0C:29:D7:42:30
inet addr:192.168.1.63 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fed7:4230/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:9000 Metric:1
RX packets:478 errors:0 dropped:0 overruns:0 frame:0
TX packets:49 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:49384 (48.2 KiB) TX bytes:3859 (3.7 KiB)
注意:
此参数通常建议不做修改
除非2个电脑/服务器直连对传数据时,提高传输速度