RAC优化之配置大帧(jumbo frame),rac优化jumboframe
RAC优化之配置大帧(jumbo frame)
首先讲讲MTU的概念:在网络通信中,有个MTU(Max Transmission Unit)的概念,即网络传输中最大帧的大小,这个值默认是1500Byte(以太网的可变帧大小是46-1500Byte)。
[root@node1 ~]# ifconfig bond0
bond0 Link encap:Ethernet HWaddr C8:1F:66:FB:6F:CD
inet addr:10.10.10.105 Bcast:10.10.10.255 Mask:255.255.255.0
inet6 addr: fe80::ca1f:66ff:fefb:6fcd/64 Scope:Link
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:353 errors:29 dropped:0 overruns:0 frame:29
TX packets:254 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:250669 (244.7 KiB) TX bytes:160443 (156.6 KiB)
所以默认配置下,如果次传输的数据超过了1500Byte大小,那么系统会将这个帧拆分成几个帧进行传输:
[root@node1 ~]# traceroute -F node2-priv 1500
traceroute to node2-priv (10.10.10.106), 30 hops max, 1500 byte packets
1 node2-priv.localdomain (10.10.10.106) 0.234 ms 0.217 ms 0.204 ms
[root@node1 ~]# traceroute -F node2-priv 1501
traceroute to node2-priv (10.10.10.106), 30 hops max, 1501 byte packets
1 node1-priv.localdomain (10.10.10.105) 0.024 ms !F-1500 0.005 ms !F-1500 0.004 ms !F-1500
[root@node1 ~]#
再说说在RAC环境中,我们需要注意的一处地方。
RAC私有网络主要是供节点之间进行网络心跳通信的,但除此之外节点间还经常需要通过私有网络进行数据块的传输。在Oracle中一个数据库的大小为8192byte,所以按照默认配置,一个数据块不得不分成几个帧进行传输,这样就加重了私有网络的负载,所以Oracle建议将私有网卡的MTU设置为9000。
下面看看我的修改步骤:
1) 查看私有网卡(在2个节点执行)
[root@node1 ~]# oifcfg getif
em1 192.168.10.0 global public
bond0 10.10.10.0 global cluster_interconnect
2) 设置私有网卡mtu(在2个节点执行)
[root@node1 ~]# ifconfig -s bond0 mtu 9000
已经设置成功了,我们可以通过traceroute或ping来测试下:
1) traceroute
[root@node1 ~]# traceroute -F node2-priv 9000
traceroute to node2-priv (10.10.10.106), 30 hops max, 9000 byte packets
1 node2-priv.localdomain (10.10.10.106) 0.346 ms 0.364 ms 0.413 ms
[root@node1 ~]# traceroute -F node2-priv 9001
traceroute to node2-priv (10.10.10.106), 30 hops max, 9001 byte packets
1 node1-priv.localdomain (10.10.10.105) 0.043 ms !F-9000 0.010 ms !F-9000 0.010 ms !F-9000
[root@node1 ~]#
2) Ping
[root@node1 ~]# ping -c 2 -M do -s 8972 node2-priv
PING node2-priv.localdomain (10.10.10.106) 8972(9000) bytes of data.
8980 bytes from node2-priv.localdomain (10.10.10.106): icmp_seq=1 ttl=64 time=0.552 ms
8980 bytes from node2-priv.localdomain (10.10.10.106): icmp_seq=2 ttl=64 time=0.551 ms
--- node2-priv.localdomain ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.551/0.551/0.552/0.023 ms
[root@node1 ~]# ping -c 2 -M do -s 8973 node2-priv
PING node2-priv.localdomain (10.10.10.106) 8973(9001) bytes of data.
From node1-priv.localdomain (10.10.10.105) icmp_seq=1 Frag needed and DF set (mtu = 9000)
From node1-priv.localdomain (10.10.10.105) icmp_seq=1 Frag needed and DF set (mtu = 9000)
--- node2-priv.localdomain ping statistics ---
0 packets transmitted, 0 received, +2 errors
[root@node1 ~]#
通过更改vSwitch 的MTU 大小将该vSwitch 配置为使用巨型帧,步骤:
step0:使用VMware vSphere CLI 中的 vicfg -vswitch -m <MTU> <vSwitch> 命令为 vSwitch 设置MTU大小。通过此命令可为此vSwitch 上的 所以上行链路设置MTU。将MTU大小设置为在与vSwitch 相连的所有虚拟化网络适配器中是最大的。例如vicfg-vswitch -m 9000 vswitch0 设置 vSwitch vswitch0 的MTU 为9000。
step1:使用 vicfg-vswitch -l 命令在主机上显示vSwitch 列表,并列出vSwitch 的属性。通过这个命令可以检查你设置是否正确。
在vmkernel 端口上启用巨型帧,步骤如下
Step0:直接登录ESX 主机的控制台
Step1:使用esxcfg-vmknic -a -l <ip address> -n <netmask> -m <MTU> <port group name> 命令创建支持巨型帧的VMkernel 连接
Step2:使用esxcfg-vmknic -l 命令显示VMkernel 接口列表,检查启用了巨型帧的接口的配置是否正确
Step3:将所有的物理交换机以及与该VMkernel 接口相连的任何物理机或虚拟机配置为支持巨型帧
在物理交换机上启用巨型帧
在物理交换机上启用巨型帧将取决于交换机的构造与类型。要想在客户操作系统上启用巨型帧,可以用增强型的VMXNET 或者VMXNET3 虚拟网卡,并通过客户操作系统启用巨型帧。
其实就是巨型帧,比现在一般的以太网帧大,具体的可以留下联系方式详细告诉你~