巨型帧通过增加帧的大小,每个数据包可以携带更多数据,从而减少了所需传输的数据包数量,降低了处理器的负担并提高了整体数据传输速度。在需要高吞吐量和大带宽的网络环境中,特别是在数据中心、服务器场和高速网络互联等传输大量数据的场景中,使用巨型帧有助于减少网络传输耗时和提升网络效率,充分发挥网络性能。
什么是巨型帧
巨型帧(Jumbo Frames)是指有效负载超过IEEE 802.3标准所限制的1500字节的以太网帧。目前阿里云支持8500 字节的巨型帧,即允许您发送8500字节载荷的以太网帧。
支持巨型帧的实例规格
目前支持巨型帧的实例规格族如下:
有关实例规格族的更多网络参数信息,请参见实例规格族中具体实例规格的网络部分。
您也可以通过DescribeInstanceTypes返回参数中的JumboFrameSupport的值,查询实例规格是否支持巨型帧,true表示支持,false表示不支持。
巨型帧对网络性能的影响
提高网络吞吐量:通过支持超过标准以太网帧大小(1500字节)的数据包,巨型帧允许单次传输更多的数据,从而减少数据包的数量,提高网络吞吐量。
减少CPU负载:更少的帧处理意味着CPU需要处理的网络中断和数据包重组任务减少,这可以减轻CPU负担,提高整体系统性能。
改善应用的网络处理时间:通过减少数据传输所需的帧数量,巨型帧能够降低应用在网络处理和传输上的耗时,这对于要求大带宽、数据密集型的应用(如高性能计算、大数据传输、存储区域网络等)尤为重要。
提升大块数据传输效率:对于需要传输大量连续数据的应用(如数据库备份、大规模文件传输、视频流媒体服务等),巨型帧能够显著提升传输速度和效率。
常见使用场景
在云服务场景中,巨型帧的使用可以带来网络性能的提升,特别是在需要处理大量数据传输的应用中。以下是一些云上场景中巨型帧的常见使用场景:
数据中心内部通信:在云数据中心内部,巨型帧可以提高服务器之间的数据传输效率,尤其是在进行大数据分析、数据库同步或分布式计算时。
存储区域网络(SAN):在云环境中,SAN用于连接服务器和存储设备。使用巨型帧可以减少数据传输过程中的耗时和开销,提高数据备份和恢复的效率。
虚拟机迁移:在云环境中,虚拟机可能需要在物理服务器之间迁移。巨型帧可以减少迁移过程中的网络耗时,加快迁移速度。
高性能计算(HPC):在云上进行科学计算或工程模拟等高性能计算任务时,巨型帧可以提高数据传输速率,减少计算任务的完成时间。
视频流和多媒体传输:云服务器可能需要处理大量的视频和多媒体内容传输。巨型帧可以提升带宽和传输效率,提供更流畅的用户体验。
巨型帧和MTU
网络最大传输单元MTU(Maximum Transmission Unit)决定了网络上单次可传输数据包的最大尺寸,包含IP数据包头和载荷,不包含以太网头部。理论上MTU越大,可在单个数据包中传递的数据越多,网络通信越高效。详细信息,请参见网络最大传输单元(MTU)。
巨型帧是MTU概念的一个特例,指的是配置了比传统以太网标准MTU(1500字节)更大的MTU值的网络接口所允许传输的数据帧。通常情况下,启用ECS实例的巨型帧时,相应网络接口的MTU会设置为8500字节。
使用巨型帧的注意事项
巨型帧技术虽然在部分使用场景中可以带来显著的性能提升,但也存在一些潜在的问题,如兼容性问题、可能增加的网络延迟等。因此,在启用巨型帧之前,需要进行充分的测试和规划,以确保网络的稳定和高效运行。
设备兼容性:需要确保所有网络设备(包括交换机、路由器、网卡等)都支持巨型帧,即需要所有网络设备的MTU都支持巨型帧的大小,否则可能会导致数据包被丢弃或分片,从而降低网络性能。详细信息,请参见MTU对网络性能的影响。
协议支持:确保上层协议(如TCP/IP)能够适应巨型帧的使用。例如,TCP的MSS(最大段大小)需要相应调整以避免不必要的数据分片。详细信息,请参见网络最大传输单元(MTU)。
重要在非TCP场景下,比如使用UDP、ICMP或其他非连接导向的协议时,如果没有相应的协议层或应用层对巨型帧的支持和优化,可能无法充分利用巨型帧带来的好处,甚至可能因为不当的使用导致数据包丢失或应用程序错误。
可能增加延迟:在低带宽链路上,较大的数据包占用线路的时间更长,可能会阻止其他人使用线路,从而造成延迟。
云产品使用限制:在实际应用场景中,和其他云产品结合使用时候,巨型帧受其他云产品支持的MTU的限制。详细信息,请参见实际应用中MTU的限制。
目前已知在以下场景使用巨型帧可能存在连通性或性能问题:
使用非TCP(UDP/ICMP)的巨型帧访问云服务或者目的主机使用负载均衡产品时,可能由于分片报文无法被负载均衡器正常转发而丢弃,造成网络不通的风险。
使用非TCP(UDP/ICMP)的巨型帧在MTU不匹配的场景下进行通信时,可能因为分片而导致网络性能下降。
开启/关闭巨型帧
您可以通过以下方式开启、关闭ECS实例的巨型帧。
如果您在操作系统上手动修改了网络接口的MTU(不建议),那么开启、关闭巨型帧后,实例网络接口的MTU的值会以您在操作系统上设置的为准。
创建实例时候开启、关闭巨型帧
在实例创建页,选择支持巨型帧的实例规格时,可选择开启、关闭巨型帧。
实例成功创建且正常启动后,巨型帧开启/关闭已生效。
修改巨型帧配置
实例创建完成后,在ECS实例操作列开启、关闭巨型帧。
登录ECS管理控制台。
在左侧导航栏,选择 。
在页面左侧顶部,选择目标资源所在的资源组和地域。
找到已创建的支持巨型帧的实例,在操作列选择
在修改巨型帧配置对话框,根据实际需要开启、关闭巨型帧。
点击确定后,您需要配置操作系统使巨型帧开启、关闭生效。
调用接口开启、关闭巨型帧
您可以通过调用ModifyInstanceAttribute接口,设置参数EnableJumboFrame为true、false,实现开启、关闭巨型帧。然后配置操作系统使巨型帧开启、关闭生效。
配置操作系统使巨型帧开启、关闭生效
开启、关闭巨型帧属于网络配置的一部分,如果您是在创建实例之后修改巨型帧配置,或者是调用接口开启、关闭巨型帧,可能需要重启网络服务或者重启网络接口才可以生效。具体操作如下:
Windows实例
重启实例:Windows实例在开启或关闭巨型帧后,需要重启实例操作系统内部才能生效。
Linux实例
远程连接Linux实例。
具体操作,请参见使用Workbench工具以SSH协议登录Linux实例。
开启或关闭巨型帧后,执行如下命令,重启网络服务使巨型帧开启/关闭生效。
说明如果您的网络接口启用了DHCP,您也可以通过
sudo dhclient
命令获取最新的MTU。例如,sudo dhclient eth0
会动态获取主网卡的网络配置信息,包括最新的MTU值。sudo systemctl restart NetworkManager
不同Linux系统发行版或版本不同,由于网络服务管理工具不同,因此重启网络服务的命令不同,部分需要重启实例。常见命令如下所示:
操作系统
重启服务命令
Alibaba Cloud Linux 2
CentOS 7
Red Hat 7
Anolis 7
SUSE Linux 11/12/15
OpenSUSE 15/42
sudo service network restart
或
sudo systemctl restart network
CentOS 6
Red Hat 6
sudo service network restart
Alibaba Cloud Linux 3
CentOS 8
Red Hat 8
Anolis 8
Fedora 33/34/35
sudo systemctl restart NetworkManager
或sudo reboot
Ubuntu 18/20/22
Debian 12
sudo netplan apply
Ubuntu 14/16
Debian 8/9/10/11
sudo systemctl restart networking
或sudo reboot
说明如果您执行
systemctl
遇到问题,请参见在Linux实例中执行systemctl命令报错怎么办?。
巨型帧使用最佳实践
使用巨型帧可以提高某些特定网络环境下的效率和性能,尤其是在数据密集型应用如存储区域网络(SAN)、大数据传输、高性能计算(HPC)等场景中。以下是使用巨型帧的一些最佳实践:
评估需求:首先,确定您的网络是否真正需要巨型帧。巨型帧最适合于那些传输大块数据的应用,如大数据分析、备份和恢复、高性能计算等。如果网络主要承载小数据包流量,巨型帧可能不会带来明显好处。详细信息,请参见常见使用场景。
评估设备和协议支持:
设备一致性:确保网络路径上的网络设备,包括交换机、路由器、服务器和网络接口卡(NIC),都支持并配置为相同的巨型帧大小。不一致的MTU设置会导致数据包被错误地分片或丢弃,影响网络性能。
上层协议兼容性:使用巨型帧可能会影响某些上层协议的表现,例如TCP窗口大小的调整对于充分利用巨型帧的能力至关重要。确保上层协议配置能够与巨型帧设置相匹配,以实现最佳性能。
测试与验证:在生产环境中部署巨型帧前,应该在隔离的测试环境中进行全面的测试,包括吞吐量测试、延迟测试以及故障恢复测试,确保巨型帧能带来预期的性能提升,并且不会引入新的问题。关于网络性能测试,请参见网络性能测试方法。
一致性配置:在网络中的所有设备上配置相同的MTU值,以确保巨型帧可以无缝传输。不一致的配置可能导致数据包分片或丢失。
开启、关闭实例的巨型帧:对于ECS实例的巨型帧的使用,建议您通过阿里云提供的方式进行开启、关闭,而不是直接修改操作系统的MTU。详细信息,请参见开启/关闭巨型帧。
监控与调整:部署巨型帧后持续监控网络性能,特别是注意任何可能由巨型帧引起的新问题,比如某些老旧设备可能无法正确处理巨型帧,或者网络中的其他设备因配置不当而导致的问题。需要根据监控结果适时调整网络配置。
常见问题
问题描述:使用巨型帧进行UDP/ICMP通信时,如果遇到性能急剧下降的情况,如何解决?
解决方案:检查数据包分片情况,必要时关闭ECS实例的巨型帧。具体操作,请参见开启/关闭巨型帧。
问题描述:ECS实例开启巨型帧的情况下,通过UDP/ICMP协议访问云服务(OSS、RDS等)时,遇到网络不通的问题,如何解决?
问题原因:当前ECS访问云服务的流量会经过负载均衡产品,受限于负载均衡产品不支持分片报文的转发,因此可能导致不通。
解决方案:缩小ECS访问云服务的消息大小,以确保数据包不分片,且尺寸小于等于1500字节。