开发者社区 问答 正文

购买 10M 固定流量的 ECS, 在带宽持续被占满的情况下, 阿里云会如何处理多出来部分的流量?

在 ECS 上跑实时通信类应用, 进行压测时, 发现当流量超过 ECS 带宽限制时, TCP 和 UDP 表现不同. 具体来说:

  1. 当 UDP 都为小包(负载<50 字节)时, 流量超过带宽限制, UDP 基本不受影响(丢包很小, 延迟也正常), 但 TCP 的延迟急剧增大, sendq 缓冲区堆积严重. 有点像 UDP 在抢占 TCP 部分的流量.
  2. 当把 UDP 做一个批量处理, 将 20 个包合成一个包发送, 流量超过带宽限制时, TCP 和 UDP 都收到影响, UDP 的丢包率开始上升, TCP 的延迟开始上升.

请问:

当流量超过带宽时, 阿里云控制流量的策略是怎样的? 是否针对不同协议, 不同包大小, 有丢包的优先级控制? 还是随机公平丢包?

展开
收起
游客3odvkabhdpo6s 2019-08-25 19:34:00 870 分享
分享
版权
举报
阿里云 AI 助理回答

阿里云ECS(Elastic Compute Service)在处理网络流量超过预设带宽限制时,遵循标准的网络拥塞控制机制。这些机制并不直接区分应用层协议(如TCP或UDP),而是基于底层网络传输的特性来工作。当网络接口达到其带宽上限时,无论是TCP还是UDP流量,都可能遇到不同的性能问题,这主要取决于协议本身的特性:

  1. TCP(Transmission Control Protocol):TCP是一个面向连接的、可靠的传输协议,它通过一系列机制(如慢启动、拥塞避免、快速重传和快速恢复等)来动态调整发送速率以适应网络条件。当网络出现拥塞时,TCP会通过重传丢失的数据包和减缓发送速率来应对,因此可能会观察到延迟增加的情况。TCP的这种设计旨在确保数据的可靠传输,即使在网络拥塞时也会尽量减少数据丢失。

  2. UDP(User Datagram Protocol):UDP是一个无连接的、不可靠的传输协议,它不提供重传或流量控制机制。当UDP流量超过带宽限制时,由于没有内置的拥塞控制,网络设备(包括但不限于交换机、路由器以及云服务商的网络设备)可能直接丢弃超出带宽限制的数据包,导致丢包率上升。对于小包场景,由于每个包携带的有效负载相对较小,单位时间内需要传输更多的包来维持相同的数据量,更容易遭遇带宽瓶颈。

至于阿里云是否针对不同协议、不同包大小有特定的丢包优先级控制,通常情况下,云服务提供商不会公开具体的拥塞控制策略细节,因为这些策略可能涉及复杂的网络设备配置和优化技术,且会根据网络状况动态调整。在实际操作中,网络设备通常采用公平队列(FIFO)、加权公平队列(WFQ)、优先级队列(PQ)等多种队列管理算法来尽力保证网络资源的合理分配,但具体实现对用户透明。

总的来说,当流量超过ECS实例的带宽限制时,TCP和UDP的表现差异主要源于它们自身的协议特性,而非阿里云直接针对协议类型或包大小实施特定的丢包策略。为了优化应用性能,建议根据应用需求选择合适的协议,并考虑升级网络带宽、使用弹性公网IP(EIP)搭配带宽包或者采用负载均衡(SLB)等方案来提升应用的可用性和扩展性。您也可以通过ECS一键诊断全面排查并修复ECS问题。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等