

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 管理磁碟區閘道的頻寬
<a name="MaintenanceUpdateBandwidth-common"></a>

您可以限制 （或調節） 從閘道到 的上傳輸送量， AWS 或從 AWS 到閘道的下載輸送量。使用頻寬限流可協助您控制閘道使用的網路頻寬量。根據預設，啟用的閘道在上傳或下載時沒有速率限制。

您可以使用 指定速率限制 AWS 管理主控台，或使用 Storage Gateway API （請參閱 [UpdateBandwidthRateLimit](https://docs.aws.amazon.com/storagegateway/latest/APIReference/API_UpdateBandwidthRateLimit.html)) 或 AWS 軟體開發套件 (SDK) 以程式設計方式指定速率限制。透過編寫程式的方式進行頻寬限流，您可以全天候自動變更限制，例如，排程變更頻寬的任務。

您也可以為閘道定義以排程為基礎的頻寬限流。您可以透過定義一或多個頻寬速率限制間隔來排程頻寬限流。如需詳細資訊，請參閱[使用 Storage Gateway 主控台進行排程的頻寬限流](#SchedulingBandwidthThrottling)。

設定頻寬限流的單一設定，相當於定義排程時將單一頻寬速率限制間隔設定為**每天**，且**開始時間**為 `00:00`，**結束時間**為 `23:59`。

**注意**  
本節中的資訊僅適用於磁帶和磁碟區閘道。若要管理 Amazon S3 檔案閘道的頻寬，請參閱[管理 Amazon S3 檔案閘道](https://docs.aws.amazon.com/filegateway/latest/files3/MaintenanceUpdateBandwidth-common.html)的頻寬。Amazon FSx 檔案閘道目前不支援頻寬速率限制。

**Topics**
+ [使用 Storage Gateway 主控台變更頻寬限流](#MaintenanceUpdateBandwidthConsole-common)
+ [使用 Storage Gateway 主控台進行排程的頻寬限流](#SchedulingBandwidthThrottling)
+ [使用 更新閘道頻寬速率限制 適用於 Java 的 AWS SDK](#MaintenanceUpdateBandwidthJava-common)
+ [使用 更新閘道頻寬速率限制 適用於 .NET 的 AWS SDK](#MaintenanceUpdateBandwidthDotNet-common)
+ [使用 更新閘道頻寬速率限制 AWS Tools for Windows PowerShell](#MaintenanceUpdateBandwidthPowerShell-common)

## 使用 Storage Gateway 主控台變更頻寬限流
<a name="MaintenanceUpdateBandwidthConsole-common"></a>

下列程序說明如何從 Storage Gateway 主控台變更閘道的頻寬限流。

**使用主控台變更閘道的頻寬調節**

1. 前往 [https://console.aws.amazon.com/storagegateway/home](https://console.aws.amazon.com/storagegateway/) 開啟 Storage Gateway 主控台。

1. 在導覽窗格中，選擇**閘道**，然後選擇您要管理的閘道。

1. 在**動作**中，選擇**編輯頻寬限制**。

1. 在**編輯速率限制**對話方塊中，輸入新的限制值，然後選擇**儲存**。您的變更會出現在閘道的 **Details (詳細資訊)** 標籤中。

## 使用 Storage Gateway 主控台進行排程的頻寬限流
<a name="SchedulingBandwidthThrottling"></a>

下列程序說明如何從 Storage Gateway 主控台變更閘道的頻寬限流排程。

**新增或修改閘道頻寬限流的排程**

1. 前往 [https://console.aws.amazon.com/storagegateway/home](https://console.aws.amazon.com/storagegateway/) 開啟 Storage Gateway 主控台。

1. 在導覽窗格中，選擇**閘道**，然後選擇您要管理的閘道。

1. 在**動作**中，選擇**編輯頻寬速率限制排程**。

   閘道的頻寬-速率限制排程會顯示在**編輯頻寬速率限制排程**對話方塊中。根據預設，新的閘道頻寬-速率限制排程為空白。

1. 在**編輯頻寬速率限制排程**對話方塊中，選擇**新增項目**以新增頻寬-速率限制間隔。為每個頻寬-速率限制間隔輸入下列資訊：
   + **星期幾**：您可以針對工作日 (星期一至星期五)、週末 (星期六和星期日)、一週中的每一天或一週中的一或多天建立頻寬速率限制間隔。
   + **開始時間**：輸入閘道本機時區中頻寬間隔的開始時間 (使用 HH: MM 格式)。
**注意**  
頻寬速率限制間隔會從您在此處指定的分鐘開始時開始。
   + **結束時間**：輸入閘道本地時區中頻寬-速率限制間隔的結束時間 (使用 HH: MM 格式)。
**重要**  
頻寬速率限制間隔在此處指定的分鐘結束時結束。若要排定在小時結束時結束的間隔，請輸入 **59**。  
若要排程不間斷的連續間隔，在小時開始時轉換且間隔之間沒有中斷，請輸入 **59** 作為第一個間隔的結束分鐘。針對後續間隔的開始分鐘，輸入 **00**。
   + **下載速率**：輸入下載速率限制 (以每秒 KB (Kbps) 為單位，或選取**無限制**停用下載的頻寬限流。下载速率的最小值為 100 Kbps。
   + **上傳速率**：輸入上傳速率限制 (以 Kbps 為單位)，或選取**無限制**停用上傳的頻寬限流。上傳速率為 50 Kbps。

   若要修改頻寬-速率限制間隔，您可以輸入間隔參數的修訂值。

   若要移除頻寬-速率限制間隔，您可以選擇要刪除之間隔右側的**移除**。

   完成變更後，選擇**儲存**。

1. 選擇**新增項目**並輸入日期、開始和結束時間，以及下載和上傳速率限制，繼續新增頻寬速率限制間隔。
**重要**  
 頻寬速率限制間隔不能重疊。間隔的開始時間必須在前一個間隔的結束時間之後，以及在下列間隔的開始時間之前發生。

1. 輸入所有頻寬速率限制間隔後，請選擇**儲存變更**以儲存頻寬-速率限制排程。

成功更新頻寬速率限制排程後，您可以在閘道的**詳細資訊**面板中查看目前的下載和上傳速率限制。

## 使用 更新閘道頻寬速率限制 適用於 Java 的 AWS SDK
<a name="MaintenanceUpdateBandwidthJava-common"></a>

透過編寫程式的方式更新頻寬速率限制，您可以自動調整一段時間內的限制，例如使用排程的任務。下列範例示範如何使用 適用於 Java 的 AWS SDK更新閘道的頻寬速率限制。若要使用範例程式碼，您應該熟悉如何執行 Java 主控台應用程式。如需詳細資訊，請參閱《適用於 Java 的 AWS SDK 開發人員指南》**中的[入門](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/java-dg-setup.html)。

**Example ：使用 更新閘道頻寬速率限制 適用於 Java 的 AWS SDK**  
下列 Java 程式碼範例會更新閘道的頻寬速率限制。如需使用此範例程式碼，您需要提供服務端點、閘道 Amazon Resource Name (ARN)，以及上傳及下載限制。如需可與 Storage Gateway 搭配使用 AWS 的服務端點清單，請參閱《[AWS Storage Gateway 》中的端點和配額](https://docs.aws.amazon.com/general/latest/gr/sg.html)*AWS 一般參考*。  

```
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.UpdateBandwidthRateLimitRequest;
import com.amazonaws.services.storagegateway.model.UpdateBandwidthRateLimitResult;


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 = 51200;  // Bits per second, minimum 51200
    static long downloadRate = 102400;   // Bits per second, minimum 102400
    
    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, downloadRate);
        
    }

    private static void UpdateBandwidth(String gatewayARN2, long uploadRate2,
            long downloadRate2) {
        try
        {
            UpdateBandwidthRateLimitRequest updateBandwidthRateLimitRequest =
                new UpdateBandwidthRateLimitRequest()
                .withGatewayARN(gatewayARN)
                .withAverageDownloadRateLimitInBitsPerSec(downloadRate)
                .withAverageUploadRateLimitInBitsPerSec(uploadRate);

            UpdateBandwidthRateLimitResult updateBandwidthRateLimitResult = sgClient.updateBandwidthRateLimit(updateBandwidthRateLimitRequest);
            String returnGatewayARN = updateBandwidthRateLimitResult.getGatewayARN();
            System.out.println("Updated the bandwidth rate limits of " + returnGatewayARN);
            System.out.println("Upload bandwidth limit = " + uploadRate + " bits per second");
            System.out.println("Download bandwidth limit = " + downloadRate + " bits per second");
        }
        catch (AmazonClientException ex)
        {
            System.err.println("Error updating gateway bandwith.\n" + ex.toString());
        }
    }        
}
```

## 使用 更新閘道頻寬速率限制 適用於 .NET 的 AWS SDK
<a name="MaintenanceUpdateBandwidthDotNet-common"></a>

透過編寫程式的方式更新頻寬速率限制，您可以自動調整一段時間內的限制，例如使用排程的任務。下列範例示範如何使用 適用於 .NET 的 AWS SDK更新閘道的頻寬速率限制。若要使用範例程式碼，您應該熟悉如何執行 .NET 主控台應用程式。如需詳細資訊，請參閱《適用於 .NET 的 AWS SDK 開發人員指南》**中的[入門](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/net-dg-setup.html)。

**Example ：使用 更新閘道頻寬速率限制 適用於 .NET 的 AWS SDK**  
下列 C\# 程式碼範例會更新閘道的頻寬速率限制。如需使用此範例程式碼，您需要提供服務端點、閘道 Amazon Resource Name (ARN)，以及上傳及下載限制。如需可與 Storage Gateway 搭配使用 AWS 的服務端點清單，請參閱《[AWS Storage Gateway 》中的端點和配額](https://docs.aws.amazon.com/general/latest/gr/sg.html)*AWS 一般參考*。  

```
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 = 51200;  // Bits per second, minimum 51200
        static long downloadRate = 102400;   // Bits per second, minimum 102400

        public static void Main(string[] args)
        {
            // Create a Storage Gateway client
            sgConfig = new AmazonStorageGatewayConfig();
            sgConfig.ServiceURL = serviceURL;
            sgClient = new AmazonStorageGatewayClient(sgConfig);

            UpdateBandwidth(gatewayARN, uploadRate, downloadRate);

            Console.WriteLine("\nTo continue, press Enter.");
            Console.Read();
        }

        public static void UpdateBandwidth(string gatewayARN, long uploadRate, long downloadRate)
        {
            try
            {
                UpdateBandwidthRateLimitRequest updateBandwidthRateLimitRequest =
                    new UpdateBandwidthRateLimitRequest()
                    .WithGatewayARN(gatewayARN)
                    .WithAverageDownloadRateLimitInBitsPerSec(downloadRate)
                    .WithAverageUploadRateLimitInBitsPerSec(uploadRate);

                UpdateBandwidthRateLimitResponse updateBandwidthRateLimitResponse = sgClient.UpdateBandwidthRateLimit(updateBandwidthRateLimitRequest);
                String returnGatewayARN = updateBandwidthRateLimitResponse.UpdateBandwidthRateLimitResult.GatewayARN;
                Console.WriteLine("Updated the bandwidth rate limits of " + returnGatewayARN);
                Console.WriteLine("Upload bandwidth limit = " + uploadRate + " bits per second");
                Console.WriteLine("Download bandwidth limit = " + downloadRate + " bits per second");
            }
            catch (AmazonStorageGatewayException ex)
            {
                Console.WriteLine("Error updating gateway bandwith.\n" + ex.ToString());
            }
        }
    }
}
```

## 使用 更新閘道頻寬速率限制 AWS Tools for Windows PowerShell
<a name="MaintenanceUpdateBandwidthPowerShell-common"></a>

透過編寫程式的方式更新頻寬速率限制，您可以自動調整一段時間內的限制，例如使用排程的任務。下列範例示範如何使用 AWS Tools for Windows PowerShell更新閘道的頻寬速率限制。若要使用範例程式碼，您應該熟悉如何執行 PowerShell 指令碼。如需詳細資訊，請參閱 *AWS Tools for PowerShell 使用者指南*中的[入門](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-started.html)。

**Example ：使用 更新閘道頻寬速率限制 AWS Tools for Windows PowerShell**  
下列 PowerShell 指令碼範例會更新閘道的頻寬速率限制。如需使用此範例指令碼，您需要提供服務端點、閘道 Amazon Resource Name (ARN)，以及上傳及下載限制。  

```
<#
.DESCRIPTION
    Update Gateway bandwidth limits.
    
.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 = 51200
$DownloadBandwidthRate = 102400
$gatewayARN = "*** provide gateway ARN ***"

#Update Bandwidth Rate Limits
Update-SGBandwidthRateLimit -GatewayARN $gatewayARN `
                            -AverageUploadRateLimitInBitsPerSec $UploadBandwidthRate `
                            -AverageDownloadRateLimitInBitsPerSec $DownloadBandwidthRate

$limits =  Get-SGBandwidthRateLimit -GatewayARN $gatewayARN

Write-Output("`nGateway: " + $gatewayARN);
Write-Output("`nNew Upload Rate: " + $limits.AverageUploadRateLimitInBitsPerSec)
Write-Output("`nNew Download Rate: " + $limits.AverageDownloadRateLimitInBitsPerSec)
```