如何通过 Direct Connect 优化文件传输性能?

上次更新日期:2022 年 1 月 11 日

我在使用 AWS Direct Connect 连接时遇到文件传输速度缓慢的问题。

解决方法

针对您的使用案例使用以下问题排查步骤。

注意:如果您在运行 AWS Command Line Interface (AWS CLI) 命令时收到错误消息,请确保您使用的是最新版本的 AWS CLI

使用 Amazon CloudWatch 指标检查 Direct Connect 连接是否存在过度使用的情况和错误

您可以使用 CloudWatch 指标来监控 Direct Connect 连接和虚拟接口。对于 Direct Connect 专用连接,请检查 ConnectionBpsEgress 和 ConnectionBpsIngress 指标中是否存在超过网络端口速度的值。检查 ConnectionErrorCount 指标是否存在 MAC 级别错误。有关对 MAC 级别错误进行问题排查的更多信息,请参阅 Direct Connect 连接指标中的 ConnectionErrorCount 部分。

对于托管连接,查看 VirtualInterfaceBpsEgress 和 VirtualInterfaceBpsIngress 指标。您只能为每个托管连接创建一个 Direct Connect 虚拟接口。这些指标是托管连接的网络流量总比特率的估计值。

有关更多信息,请参阅查看 Direct Connect CloudWatch 指标

将大文件上传到 Amazon Simple Storage Service (Amazon S3) 时优化性能

若要将大文件上传到 Amazon S3,最好利用分段上传。如果您使用的是 AWS CLI,则所有高级别 Amazon S3 命令(如 cpsync)都会自动对大文件执行分段上传。

使用以下 AWS CLI Amazon S3 配置值

  • max_concurrent_requests – 最大并发请求数。默认值为 10。确保您拥有足够的资源来支持最大请求数。
  • max_queue_size – 任务队列中的最大任务数。
  • multipart_threshold – CLI 用于单个文件的分段传输的大小阈值。
  • multipart_chunksize – 使用分段传输时,这是 CLI 用于单个文件的分段传输的区块大小。此值设置 AWS CLI 在单个文件的分段上传中上传的每个部分的大小。通过此设置,您可以将较大的文件(例如 300MB)分解为较小的部分,以加快上传速度。默认值为 8MB,而您可以设置的最小值为 5MB。

注意:分段上传要求单个文件最多上传 10000 个部分。确保您所设置的区块大小平衡了文件大小和部分数量。

  • max_bandwidth – 将数据上传到 Amazon S3 和从 Amazon S3 下载数据所消耗的最大带宽。

有关更多信息,请参阅使用 AWS SFTP 将小型数据集从本地迁移到 Amazon S3

服务器消息块 (SMB) Windows 文件服务器的性能优化

为了优化 Windows SMB 文件服务器的网络性能,必须在每个客户端和文件服务器之间协商服务器消息块 (SMB) 3.0 协议。这是因为 SMB 3.0 使用协议提高了 SMB 文件服务器的性能,包括以下功能:

  • SMB 直通 – 此功能可确保 SMB 检测到文件服务器上的 RDMA 网络接口,并自动使用远程直接内存访问 (RDMA)。 RDMA 可提高吞吐量,并提供低延迟和低 CPU 利用率。
  • SMB 多通道 – 此功能允许文件服务器同时使用多个网络连接,并提供更高的吞吐量。
  • SMB 横向扩展 – 此功能允许集群配置中的 SMB 3.0 显示所有集群节点在主动/主动配置中的共享。这可以确保最大共享带宽是所有文件服务器集群节点的总带宽。

对于 SMB 客户端,使用 robocopy 多线程功能,通过多个并行连接将文件和文件夹复制到文件服务器。

您还可以使用显式拥塞通知 (ECN)大量发送卸载 (LSO) 来降低吞吐量。

检查 Direct Connect 连接上是否存在数据包丢失的情况

当传输的数据包未能到达目的地,从而导致网络性能问题时,就会发生数据包丢失。数据包丢失是由目的地信号强度低、系统利用率过高、网络拥塞和网络路由配置错误造成的。

有关更多信息,请参阅 如何排查我的 Direct Connect 连接的数据包丢失问题?

隔离和诊断网络和应用程序性能问题

您可以使用 iPerf3tcpdumpWireshark 等实用程序对 Direct Connect 性能问题进行排查并分析网络结果。请注意以下影响单个 TCP 流上的网络吞吐量的设置:

  • 接收方窗口大小 (RWS) – 这表示接收方在缓冲区不溢出的情况下可以接受的最大字节数。
  • 发送方发送缓冲区 – 这可能会限制接收方可以确认的最大字节数。发送方在收到确认之前不能丢弃未确认的字节。未确认的字节可能必须在超时期限后重新传输。
  • 发送方 MSS(最大分段大小)– TCP 分段可以作为有效负载的最大字节数。MSS 越小,网络吞吐量就越小。
  • 往返时间 (RTT) – 发送方和接收方之间的 RTT 越长,可用的网络带宽就越低。

提示:在文件传输期间,发送方最好与接收方建立多个并行连接。

有关更多信息,请参阅如何排查 Direct Connect 网络性能问题?


这篇文章对您有帮助吗?


您是否需要账单或技术支持?