如何排查 Storage Gateway 上传到 AWS 时性能下降的问题?

上次更新日期:2020 年 10 月 12 日

如何排查我在 AWS Storage Gateway 上的网关上传到 AWS 时性能下降的问题?

解决方法 查看您的互联网带宽或传送至 AWS 的网络吞吐量

网关与 AWS 之间的互联网速度可能会影响上传性能。要确定网关可用的互联网带宽,请从与网关设备位于同一网络上的虚拟机 (VM) 或系统运行网络测试。

如果您的网关通过 AWS Direct Connect 或 VPN 连接通过 Amazon Simple Storage Service (Amazon S3) 的 Amazon Virtual Private Cloud (Amazon VPC) 终端节点连接到 AWS,则请运行从本地虚拟机到 VPC 中实例的网络吞吐量测试。

如果您的网关在本地托管并通过 Direct Connect 或 VPN 连接通过 Storage Gateway 的 VPC 终端节点连接到 AWS,则从网关到 S3 存储桶的流量将遍历公有虚拟接口或公有互联网。如果公有虚拟接口或互联网连接拥塞,则网关的上传性能可能会受到影响。要允许流量遍历私有虚拟接口,请考虑使用 Amazon S3 VPC 终端节点设置网关。使用此配置,您必须在网关设备上创建和配置 Amazon Elastic Compute Cloud (Amazon EC2) 代理。

查看网关的缓存存储

如果您使用的是文件网关,请检查您的 CachePercentDirty 指标。写入网关但尚未写入 Amazon S3 的任何数据都被视为脏数据。高于 80% 的 CachePercentDirty 指标可能表明从网关到 Amazon S3 的上传速度缓慢。

如果 CachePercentDirty 指标较高,则检查 CloudBytesUploaded 指标,以确认上传到 Amazon S3 的速度是否较慢。如果上传速度较慢,则考虑增加网关可用的互联网带宽。

此外,请在 Amazon CloudWatch 上查看您的网关的 IoWaitPercent 指标。如果您在测试期间发现网关的 IoWaitPercent 指标高于 10%,则网关的磁盘可能没有足够的 I/O 来处理工作负载。您还可以查看WriteBytes 指标(使用 SampleCount 统计数据),以检查您对 AWS 的写入 I/O 总量。

如果网关的缓存磁盘没有足够的 I/O 来处理工作负载,请考虑将缓存磁盘更改为更快的磁盘类型。例如,考虑使用 SSD 或 NVMe 支持的 SSD 磁盘。将另一个缓存磁盘附加到网关还有助于增加网关可用的聚合 I/O。

检查网关主机虚拟机或 Amazon EC2 实例的配置

确认网关的主机虚拟机或 EC2 实例的 CPU 和 RAM 可以支持您的网关传送到 AWS 的吞吐量。例如,每个 EC2 实例类型都有不同的基准吞吐量。如果突增吞吐量已耗尽,则实例将使用其基准吞吐量,进而可能限制上传到 AWS 的吞吐量。

如果您的网关托管在 EC2 实例上,请检查该实例的 NetworkOut 指标。如果 NetworkOut 指标在测试期间处于基准吞吐量,则考虑将实例更改为较大的实例类型。较大的实例类型可以实现更高的网络吞吐量。

考虑网关与数据集之间的地理距离

最佳做法是在与数据集相同的网络中部署网关,或者在地理位置靠近数据集的位置上部署网关。避免通过广域网 (WAN) 设置连接。WAN 连接的一个示例是在 EC2 实例上部署的网关,其中文件共享通过直接连接或 VPN 挂载。通过 WAN 连接从本地流量到 AWS 的传输延迟会影响数据到达网关的速度。此延迟最终会影响上传到 S3 存储桶的速度。为了帮助减少上传延迟,请将您的网关部署在与您用作文件共享的 S3 存储桶相同的 AWS 区域。</p