管理 Amazon S3 文件网关的带宽 - AmazonStorage Gateway
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

管理 Amazon S3 文件网关的带宽

您可以限制从网关到的上传吞吐量Amazon以控制网关使用的网络带宽量。默认情况下,已激活的网关没有速率限制。

您可以使用Amazon Web Services Management Console,一个Amazon软件开发工具包 (SDK),或Amazon Storage GatewayAPI(请参阅更新带宽率限制时间表中的AmazonStorage Gateway API 参考。)。使用带宽速率限制计划,您可以将限制配置为在一天或一周内自动更改。有关更多信息,请参阅使用 Storage Gateway 控制台查看和编辑网关的带宽限制计划

注意

Amazon FSx 文件网关类型目前不支持配置带宽速率限制和时间表。

使用 Storage Gateway 控制台查看和编辑网关的带宽限制计划

本节介绍如何查看和编辑网关的带宽速率限制计划。

查看和编辑带宽速率限制计划
  1. 在打开 Storage Gateway 控制台https://console.aws.amazon.com/storagegateway/home.

  2. 在左侧导航窗格中,选择网关,然后选择要管理的网关。

  3. 适用于操作,选择编辑带宽速率限制计划.

    网关的当前带宽限制时间表显示在编辑带宽速率限制计划页. 默认情况下,新网关没有定义的带宽率限制。

  4. (可选)选择添加新的带宽速率限制将新的可配置间隔添加到计划中。对于添加的每个间隔,输入以下信息:

    • 上传速率— 输入上传速率限制,以兆比特/秒 (Mbps) 为单位。最小值为 100 Mbps。

    • 星期几— 选择要应用时间间隔的每周的一天或几天。您可以在工作日(周一至周五)、周末(周六和周日)、一周中的每一天或每周的一个特定日期应用时间间隔。要在任何时候均匀、持续地应用带宽限制,请选择没有计划.

    • 开始时间— 输入带宽间隔的开始时间,使用 HH: MM 格式和网关与 UTC 的时区偏移量。

      注意

      您的带宽速率限制间隔从您在此指定的分钟开始时开始。

    • 结束时间— 输入带宽间隔的结束时间,使用 HH: MM 格式和网关与 GMT 之间的时区偏移量。

      重要

      带宽速率限制间隔在此处指定的分钟结束时结束。要安排在一个小时结束的时间间隔,请输入59.

      要安排连续的间隔,在小时开始时进行过渡,而不间隔之间的中断,请输入59在第一个时间间隔的最后一分钟。Enter00在接下来的时间间隔的开始分钟。

  5. (可选) 根据需要重复之前的步骤,直到您的带宽速率限制计划完成。如果需要从计划中删除时间间隔,请选择Remove.

    重要

    带宽速率限制间隔不能重叠。时间间隔的开始时间必须在前一个时间间隔的结束时间之后和下一个间隔的开始时间之前。

  6. 完成后,选择保存更改.

使用更新网关带宽速率限制Amazon SDK for Java

通过以编程方式更新带宽速率限制,您可以在一段时间内自动调整这些限制,例如,使用计划任务进行调整。以下示例展示了如何使用更新网关的带宽速率限制。Amazon SDK for Java. 如需使用示例代码,您应该熟悉 Java 控制台应用程序的运行方式。有关更多信息,请参阅 。开始使用中的Amazon SDK for Java开发人员指南.

例 :使用更新网关带宽速率限制Amazon SDK for Java

以下 Java 代码示例更新网关的带宽速率限制。要使用此示例代码,您必须提供服务终端节点、网关的 Amazon 资源名称 (ARN) 和上传限制。查看列表Amazon可以与 Storage Gateway 一起使用的服务终端节点,请参阅Amazon Storage Gateway终端节点和配额中的Amazon一般参考.

import java.io.IOException; import com.amazonaws.AmazonClientException; import com.amazonaws.auth.PropertiesCredentials; import com.amazonaws.services.storagegateway.AWSStorageGatewayClient; import com.amazonaws.services.storagegateway.model. UpdateBandwidthRateLimitScheduleRequest; import com.amazonaws.services.storagegateway.model. UpdateBandwidthRateLimitScheduleReturn; import java.util.Arrays; import java.util.Collections; import java.util.List; public class UpdateBandwidthExample { public static AWSStorageGatewayClient sgClient; // The gatewayARN public static String gatewayARN = "*** provide gateway ARN ***"; // The endpoint static String serviceURL = "https://storagegateway.us-east-1.amazonaws.com"; // Rates static long uploadRate = 100 * 1024 * 1024; // Bits per second, minimum 100 Megabits/second public static void main(String[] args) throws IOException { // Create a storage gateway client sgClient = new AWSStorageGatewayClient(new PropertiesCredentials( UpdateBandwidthExample.class.getResourceAsStream("AwsCredentials.properties"))); sgClient.setEndpoint(serviceURL); UpdateBandwidth(gatewayARN, uploadRate, null); // download rate not supported by S3 File gateways } private static void UpdateBandwidth(String gatewayArn, long uploadRate, long downloadRate) { try { BandwidthRateLimit bandwidthRateLimit = new BandwidthRateLimit(downloadRate, uploadRate); BandwidthRateLimitInterval noScheduleInterval = new BandwidthRateLimitInterval() .withBandwidthRateLimit(bandwidthRateLimit) .withDaysOfWeek(Arrays.asList(1, 2, 3, 4, 5, 6, 0)) .withStartHourOfDay(0) .withStartMinuteOfHour(0) .withEndHourOfDay(23) .withEndMinuteOfHour(59); UpdateBandwidthRateLimitScheduleRequest updateBandwidthRateLimitScheduleRequest = new UpdateBandwidthRateLimitScheduleRequest() .withGatewayARN(gatewayArn) .with BandwidthRateLimitIntervals(Collections.singletonList(noScheduleInterval)); UpdateBandwidthRateLimitScheduleReturn updateBandwidthRateLimitScheuduleResponse = sgClient.UpdateBandwidthRateLimitSchedule(updateBandwidthRateLimitScheduleRequest); String returnGatewayARN = updateBandwidthRateLimitScheuduleResponse.getGatewayARN(); System.out.println("Updated the bandwidth rate limits of " + returnGatewayARN); System.out.println("Upload bandwidth limit = " + uploadRate + " bits per second"); } catch (AmazonClientException ex) { System.err.println("Error updating gateway bandwith.\n" + ex.toString()); } } }

使用更新网关带宽速率限制Amazon SDK for .NET

通过以编程方式更新带宽速率限制,您可以在一段时间内自动调整这些限制,例如,使用计划任务进行调整。以下示例展示了如何通过使用更新网关的带宽速率限制。Amazon适用于 .NET 的软件开发工具包 (SDK)。如需使用示例代码,您应该熟悉 .NET 控制台应用程序的运行方式。有关更多信息,请参阅 。开始使用中的Amazon SDK for .NET开发人员指南.

例 :使用更新网关带宽速率限制Amazon SDK for .NET

以下 C# 代码示例更新网关的带宽速率限制。要使用此示例代码,您必须提供服务终端节点、网关的 Amazon 资源名称 (ARN) 和上传限制。查看列表Amazon可以与 Storage Gateway 一起使用的服务终端节点,请参阅Amazon Storage Gateway终端节点和配额中的Amazon一般参考.

using System; using System.Collections.Generic; using System.Linq; using System.Text; using Amazon.StorageGateway; using Amazon.StorageGateway.Model; namespace AWSStorageGateway { class UpdateBandwidthExample { static AmazonStorageGatewayClient sgClient; static AmazonStorageGatewayConfig sgConfig; // The gatewayARN public static String gatewayARN = "*** provide gateway ARN ***"; // The endpoint static String serviceURL = "https://storagegateway.us-east-1.amazonaws.com"; // Rates static long uploadRate = 100 * 1024 * 1024; // Bits per second, minimum 100 Megabits/second public static void Main(string[] args) { // Create a storage gateway client sgConfig = new AmazonStorageGatewayConfig(); sgConfig.ServiceURL = serviceURL; sgClient = new AmazonStorageGatewayClient(sgConfig); UpdateBandwidth(gatewayARN, uploadRate, null); Console.WriteLine("\nTo continue, press Enter."); Console.Read(); } public static void UpdateBandwidth(string gatewayARN, long uploadRate, long downloadRate) { try { BandwidthRateLimit bandwidthRateLimit = new BandwidthRateLimit(downloadRate, uploadRate); BandwidthRateLimitInterval noScheduleInterval = new BandwidthRateLimitInterval() .withBandwidthRateLimit(bandwidthRateLimit) .withDaysOfWeek(Arrays.asList(1, 2, 3, 4, 5, 6, 0)) .withStartHourOfDay(0) .withStartMinuteOfHour(0) .withEndHourOfDay(23) .withEndMinuteOfHour(59); List <BandwidthRateLimitInterval> bandwidthRateLimitIntervals = new List<BandwidthRateLimitInterval>(); bandwidthRateLimitIntervals.Add(noScheduleInterval); UpdateBandwidthRateLimitScheduleRequest updateBandwidthRateLimitScheduleRequest = new UpdateBandwidthRateLimitScheduleRequest() .withGatewayARN(gatewayARN) .with BandwidthRateLimitIntervals(bandwidthRateLimitIntervals); UpdateBandwidthRateLimitScheduleReturn updateBandwidthRateLimitScheuduleResponse = sgClient.UpdateBandwidthRateLimitSchedule(updateBandwidthRateLimitScheduleRequest); String returnGatewayARN = updateBandwidthRateLimitScheuduleResponse.GatewayARN; Console.WriteLine("Updated the bandwidth rate limits of " + returnGatewayARN); Console.WriteLine("Upload bandwidth limit = " + uploadRate + " bits per second"); } catch (AmazonStorageGatewayException ex) { Console.WriteLine("Error updating gateway bandwith.\n" + ex.ToString()); } } } }

使用更新网关带宽速率限制Amazon Tools for Windows PowerShell

通过以编程方式更新带宽速率限制,您可以在一段时间内自动调整这些限制,例如,使用计划任务进行调整。以下示例展示了如何使用更新网关的带宽速率限制。Amazon Tools for Windows PowerShell. 如需使用示例代码,您应该熟悉 PowerShell脚本 控制台应用程序的运行方式。有关更多信息,请参阅《Amazon Tools for Windows PowerShell 用户指南》中的入门

例 :使用更新网关带宽速率限制Amazon Tools for Windows PowerShell

以下 PowerShell 脚本示例更新网关的带宽速率限制。要使用此示例脚本,您必须提供服务终端节点、网关的 Amazon 资源名称 (ARN) 和上传限制。

<# .DESCRIPTION Update Gateway bandwidth limits schedule .NOTES PREREQUISITES: 1) AWS Tools for PowerShell from https://aws.amazon.com/powershell/ 2) Credentials and region stored in session using Initialize-AWSDefault. For more info, see https://docs.aws.amazon.com/powershell/latest/userguide/specifying-your-aws-credentials.html .EXAMPLE powershell.exe .\SG_UpdateBandwidth.ps1 #> $UploadBandwidthRate = 100 * 1024 * 1024 $gatewayARN = "*** provide gateway ARN ***" $bandwidthRateLimitInterval = New-Object Amazon.StorageGateway.Model.BandwidthRateLimitInterval $bandwidthRateLimitInterval.StartHourOfDay = 0 $bandwidthRateLimitInterval.StartMinuteOfHour = 0 $bandwidthRateLimitInterval.EndHourOfDay = 23 $bandwidthRateLimitInterval.EndMinuteOfHour = 59 $bandwidthRateLimitInterval.DaysOfWeek = 0,1,2,3,4,5,6 $bandwidthRateLimitInterval.AverageUploadRateLimitInBitsPerSec = $UploadBandwidthRate #Update Bandwidth Rate Limits Update-SGBandwidthRateLimitSchedule -GatewayARN $gatewayARN ` -BandwidthRateLimitInterval @($bandwidthRateLimitInterval) $schedule = Get-SGBandwidthRateLimitSchedule -GatewayARN $gatewayARN Write-Output("`nGateway: " + $gatewayARN); Write-Output("`nNew bandwidth throttle schedule: " + $schedule.BandwidthRateLimitIntervals.AverageUploadRateLimitInBitsPerSec)