我的 Amazon Relational Database Service (Amazon RDS) SQL Server 資料庫執行個體會使用比預期更多的記憶體。我想設定 Amazon CloudWatch 警示來監視 SQL Server 使用的記憶體用量。
簡短說明
為您的 RDS 資料庫執行個體啟用增強監控,然後建立 CloudWatch 警示。使用 Amazon Simple Notification Service (Amazon SNS) 接收有關 SQL Server 記憶體用量的通知。
解決方法
此範例會使用增強監控指標 sqlServerTotKb 來建立 CloudWatch 警示。接著,Amazon SNS 會傳送有關 Amazon RDS for SQL Server 資料庫執行個體使用的記憶體通知。
請完成下列步驟:
- 開啟 CloudWatch 主控台。
- 在導覽窗格中,選擇 Log groups (日誌群組)。
- 從 Log groups (日誌群組) 清單選擇 RDSOSMetrics。
- 針對 Metric filters (指標篩選條件),選擇 Create Metric Filter (建立指標篩選條件)。
- 輸入 RDS 資料庫執行個體的 Filter Pattern (篩選器模式),格式如下:{$.instanceID = "nameOfYourRDSInstance"},例如 {$.instanceID="sqltest"}。
- 在 Select Log Data to Test (選擇要測試的日誌資料) 部分,選擇您 RDS 資料庫執行個體的資源 ID。
注意:若要尋找 RDS 資料庫執行個體的資源 ID,請開啟 Aurora 和 RDS 主控台。在導覽窗格中,選擇 Databases (資料庫)。選擇您的 RDS 資料庫執行個體,前往 Configuration (組態) 索引標籤,然後在 Instance (執行個體) 部分中尋找資源 ID。
- 選擇 Next (下一步),然後輸入 Filter name (篩選條件名稱),例如 MyFilter。
- 輸入 Metric Namespace (指標命名空間),例如 EMMetric,以及 Metric name (指標名稱),例如 SQLServerMemoryConsumption。
- 輸入指標值 $.memory.sqlServerTotKb,然後選擇 Next (下一步)。
- 選擇 Create Metric Filter (建立指標篩選條件)。
- 選取指標篩選條件,然後選擇 Create Alarm (建立警示)。
- 在 Metrics (指標) 部分驗證 Namespace (命名空間) 和 Metric name (指標名稱),然後將 Period (期間) 設定為 1 分鐘。
- 在 Conditions (條件) 部分中輸入閾值條件。例如:
閾值類型: 靜態
每當 SQLServerMemoryConsumption: 大於 > 閾值
閾值: 20971520
**注意:**若要指定 20 GiB 為閾值,請輸入以 KiB 為單位的值,例如 20971520 (20 * 1024 * 1024)。
- 選擇 Next (下一步)。
- 在 Configure Action (設定動作) 部分中選擇 In Alarm (警示中)。
- 選取 SNS 主題,或選擇 Create new topic (建立新主題)。使用您要接收警示的電子郵件地址,然後選擇 Next (下一步)。
- 輸入警示名稱和說明,然後選擇 Next (下一步)。例如:
警示名稱: RDS DB instance: SQLTEST: SQL Server Memory Usage > 20 GiB
警示說明: SQL Server Memory usage on your RDS DB instance is high
- 在 Preview and Create (預覽並建立) 頁面中,確認警示的詳細資訊。
- 選擇 Create alarm (建立警示)。
您可以在 CloudWatch 主控台上的 Alarms (警示) 下檢視警示。當您的 SQL Server 記憶體用量超過定義的閾值時,警示會進入 ALARM 狀態,並且您會收到電子郵件通知。