全部产品
Search
文档中心

云服务器 ECS:巨型帧(Jumbo Frames)

更新时间:Dec 20, 2024

巨型帧通过增加帧的大小,每个数据包可以携带更多数据,从而减少了所需传输的数据包数量,降低了处理器的负担并提高了整体数据传输速度。在需要高吞吐量和大带宽的网络环境中,特别是在数据中心、服务器场和高速网络互联等传输大量数据的场景中,使用巨型帧有助于减少网络传输耗时和提升网络效率,充分发挥网络性能。

什么是巨型帧

巨型帧(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的值会以您在操作系统上设置的为准。

创建实例时候开启、关闭巨型帧

实例创建页,选择支持巨型帧的实例规格时,可选择开启、关闭巨型帧。

image

实例成功创建且正常启动后,巨型帧开启/关闭已生效。

修改巨型帧配置

实例创建完成后,在ECS实例操作列开启、关闭巨型帧。

  1. 登录ECS管理控制台

  2. 在左侧导航栏,选择实例与镜像 > 实例

  3. 在页面左侧顶部,选择目标资源所在的资源组和地域。地域

  4. 找到已创建的支持巨型帧的实例,在操作列选择icon1 > 网络和安全组 > 修改巨型帧配置。

  5. 修改巨型帧配置对话框,根据实际需要开启、关闭巨型帧。

    jumbo.png

点击确定后,您需要配置操作系统使巨型帧开启、关闭生效

调用接口开启、关闭巨型帧

您可以通过调用ModifyInstanceAttribute接口,设置参数EnableJumboFrame为true、false,实现开启、关闭巨型帧。然后配置操作系统使巨型帧开启、关闭生效

配置操作系统使巨型帧开启、关闭生效

开启、关闭巨型帧属于网络配置的一部分,如果您是在创建实例之后修改巨型帧配置,或者是调用接口开启、关闭巨型帧,可能需要重启网络服务或者重启网络接口才可以生效。具体操作如下:

Windows实例

重启实例:Windows实例在开启或关闭巨型帧后,需要重启实例操作系统内部才能生效。

Linux实例

  1. 远程连接Linux实例。

    具体操作,请参见使用Workbench工具以SSH协议登录Linux实例

  2. 开启或关闭巨型帧后,执行如下命令,重启网络服务使巨型帧开启/关闭生效。

    说明

    如果您的网络接口启用了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 NetworkManagersudo reboot

    • Ubuntu 18/20/22

    • Debian 12

    sudo netplan apply

    • Ubuntu 14/16

    • Debian 8/9/10/11

    sudo systemctl restart networkingsudo reboot

    说明

    如果您执行systemctl遇到问题,请参见在Linux实例中执行systemctl命令报错怎么办?

巨型帧使用最佳实践

使用巨型帧可以提高某些特定网络环境下的效率和性能,尤其是在数据密集型应用如存储区域网络(SAN)、大数据传输、高性能计算(HPC)等场景中。以下是使用巨型帧的一些最佳实践:

  • 评估需求:首先,确定您的网络是否真正需要巨型帧。巨型帧最适合于那些传输大块数据的应用,如大数据分析、备份和恢复、高性能计算等。如果网络主要承载小数据包流量,巨型帧可能不会带来明显好处。详细信息,请参见常见使用场景

  • 评估设备和协议支持

    • 设备一致性:确保网络路径上的网络设备,包括交换机、路由器、服务器和网络接口卡(NIC),都支持并配置为相同的巨型帧大小。不一致的MTU设置会导致数据包被错误地分片或丢弃,影响网络性能。

    • 上层协议兼容性:使用巨型帧可能会影响某些上层协议的表现,例如TCP窗口大小的调整对于充分利用巨型帧的能力至关重要。确保上层协议配置能够与巨型帧设置相匹配,以实现最佳性能。

  • 测试与验证:在生产环境中部署巨型帧前,应该在隔离的测试环境中进行全面的测试,包括吞吐量测试、延迟测试以及故障恢复测试,确保巨型帧能带来预期的性能提升,并且不会引入新的问题。关于网络性能测试,请参见网络性能测试方法

  • 一致性配置:在网络中的所有设备上配置相同的MTU值,以确保巨型帧可以无缝传输。不一致的配置可能导致数据包分片或丢失。

    开启、关闭实例的巨型帧:对于ECS实例的巨型帧的使用,建议您通过阿里云提供的方式进行开启、关闭,而不是直接修改操作系统的MTU。详细信息,请参见开启/关闭巨型帧

  • 监控与调整:部署巨型帧后持续监控网络性能,特别是注意任何可能由巨型帧引起的新问题,比如某些老旧设备可能无法正确处理巨型帧,或者网络中的其他设备因配置不当而导致的问题。需要根据监控结果适时调整网络配置。

常见问题

  1. 问题描述:使用巨型帧进行UDP/ICMP通信时,如果遇到性能急剧下降的情况,如何解决?

    解决方案:检查数据包分片情况,必要时关闭ECS实例的巨型帧。具体操作,请参见开启/关闭巨型帧

  2. 问题描述:ECS实例开启巨型帧的情况下,通过UDP/ICMP协议访问云服务(OSS、RDS等)时,遇到网络不通的问题,如何解决?

    问题原因:当前ECS访问云服务的流量会经过负载均衡产品,受限于负载均衡产品不支持分片报文的转发,因此可能导致不通。

    解决方案:缩小ECS访问云服务的消息大小,以确保数据包不分片,且尺寸小于等于1500字节。