系統監控 - AWS 規定指引

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

系統監控

適用於 MySQL 或 MariaDB 的亞馬遜 RDS 中的資料庫執行個體在 Linux 作業系統上執行,該作業系統使用基礎系統資源:CPU、記憶體、網路和儲存。

MySQL [(none)]> SHOW variables LIKE 'version%'; +-------------------------+---------------------+ | Variable_name | Value | +-------------------------+---------------------+ | version | 8.0.28 | | version_comment | Source distribution | | version_compile_machine | aarch64 | | version_compile_os | Linux | | version_compile_zlib | 1.2.11 | +-------------------------+---------------------+ 5 rows in set (0.00 sec)

資料庫和基礎作業系統的整體效能在很大程度上取決於系統資源的使用率。例如,CPU 是系統效能的關鍵元件,因為它會執行資料庫軟體指令並管理其他系統資源。如果 CPU 過度使用 (也就是說,如果負載所需的 CPU 電力超過資料庫執行個體佈建的能力),則此問題會影響資料庫的效能和穩定性,以及因此影響應用程式的效能和穩定性。

數據庫引擎動態分配和釋放內存。當 RAM 中沒有足夠的記憶體來執行目前的工作時,系統會將記憶體分頁寫入置換記憶體,該記憶體位於磁碟上。由於磁碟比記憶體慢得多,即使磁碟是以 SSD NVMe 技術為基礎,記憶體配置過多會導致效能降低。高記憶體使用率會導致資料庫回應延遲增加,因為分頁檔案的大小會增加以支援額外的記憶體。如果記憶體配置太高,以致於耗盡 RAM 和交換記憶體空間,則資料庫服務可能無法使用,而且使用者可能會觀察到錯誤,例如[ERROR] mysqld: Out of memory (Needed xyz bytes)

MySQL 和 MariaDB 的數據庫管理系統利用存儲子系統,它由存儲磁盤組成磁碟上結構例如表格、索引、二進位日誌、重做日誌、還原日誌和雙重寫入緩衝區檔。因此,與其他類型的軟體相比,資料庫必須執行大量的磁碟活動。為了達到最佳的資料庫作業,請務必監視和調整磁碟 I/O 使用率和磁碟空間配置。當資料庫達到磁碟支援的最大 IOPS 或輸送量限制時,資料庫效能可能會受到影響。例如,索引掃描造成的隨機存取突發可能會導致每秒大量 I/O 作業,最終可能會觸及基礎儲存區的限制。完整資料表掃描可能不會達到 IOPS 限制,但可能會造成以每秒 MB 為單位的高輸送量。監視和生成磁盤空間分配警報至關重要,因為錯誤如OS error code 28: No space left on device可能會造成資料庫無法使用和損毀。

Amazon RDS 可即時為執行資料庫執行個體的作業系統提供指標。Amazon RDS 會自動將一組作業系統指標發佈到CloudWatch。您可以在 Amazon RDS 主控台中顯示和分析這些指標,以及CloudWatch儀表板,您可以在中設置所選指標的警報CloudWatch。範例包括:

  • CPUUtilization— CPU 使用率的百分比。

  • BinLogDiskUsage— 二進位記錄所佔用的磁碟空間量。

  • FreeableMemory— 可用隨機存取記憶體的數量。這代表的價值MemAvailable的欄位/proc/meminfo

  • ReadIOPS— 每秒的平均磁碟讀取 I/O 作業數。

  • WriteThroughput— 本機儲存體每秒寫入磁碟的平均位元組數。

  • NetworkTransmitThroughput— 資料庫節點上的傳出網路流量,結合了用於監控和複寫的資料庫流量和 Amazon RDS 流量。

如需 Amazon RDS 發佈的所有指標的完整參考資料CloudWatch,請參閱亞馬遜CloudWatch亞馬遜 RDS 的指標在亞馬遜 RDS 文檔中。

下圖顯示了實例CloudWatch顯示在亞馬遜 RDS 主控台上的亞馬遜 RDS 指標。

CloudWatch亞馬遜 RDS 主控台上顯示的亞馬遜 RDS 指標

下列圖表顯示的類似測量結果CloudWatch儀表板。

CloudWatch亞馬遜 RDS 指標顯示在CloudWatch安慰

另一組作業系統測量結果是由增強型監控對於亞馬遜 RDS。此工具提供即時系統指標和作業系統程序資訊,可讓您更深入瞭解 Amazon RDS for MariaDB 和 Amazon RDS for MySQL 資料庫執行個體的運作狀態。當你啟用增強型監控在資料庫執行個體上設定所需的粒度,此工具會收集作業系統指標和程序資訊,您可以在亞馬遜 RDS 控制台,如下面的屏幕。

增強型監控收集的 OS 測量結果

增強型監控提供的一些關鍵指標包括:

  • cpuUtilization.total— 使用中 CPU 的總百分比。

  • cpuUtilization.user— 使用者程式正在使用的 CPU 百分比。

  • memory.active— 分配的內存量,以千字節為單位。

  • memory.cached— 用於快取檔案系統型 I/O 的記憶體量。

  • loadAverageMinute.one— 最後一分鐘內要求 CPU 時間的處理序數目。

如需量度的完整清單,請參閱增強型監控中的 OS 指標在亞馬遜 RDS 文檔中。

在 Amazon RDS 主控台上,作業系統處理序清單會針對資料庫執行個體中執行的每個程序提供詳細資訊。該清單分為三個部分:

  • OS 程序‒ 本節表示所有核心和系統程序的彙總摘要。這些程序通常對資料庫效能的影響最小。

  • RDS 程序— 本節代表的摘要AWS支援 Amazon RDS 資料庫執行個體所需的程序。例如,它包括 Amazon RDS 管理代理程式、監控和診斷程序以及類似程序。

  • RDS 子處理程序— 本節顯示支援資料庫執行個體的 Amazon RDS 程序摘要 — 在本例中為mysqld進程及其線程。該mysqld線程嵌套在父項下方mysqld過程。

下列畫面圖例顯示 Amazon RDS 主控台中的作業系統程序清單。

亞馬遜 RDS 主控台中的作業系統程序清單

Amazon RDS 將增強型監控中的指標交付到您的CloudWatch日誌帳戶。Amazon RDS 主控台上顯示的監控資料會從中擷取CloudWatch記錄檔。你也可以擷取資料庫執行個體的指標做為日誌串流從CloudWatch記錄檔。這些量度以 JSON 格式儲存。您可以從中使用增強型監控 JSON 輸出CloudWatch登入您選擇的監控系統。

為了在圖形上顯示CloudWatch儀表板並創建警報,該警報將在指標違反定義的閾值時啟動操作,您必須在中創建指標過濾器CloudWatch從CloudWatch記錄檔。如需詳細指示,請參閱AWS RE: 發表文章關於如何篩選增強型監控CloudWatch為 Amazon RDS 產生自動化自訂指標的日誌。

下列範例說明自訂量度CPU.UserCustom/RDS命名空間。此自訂量度是透過篩選cpuUtilization.user增強的監控量度CloudWatch記錄檔。

CPU. 用戶自定義指標

當測量結果在CloudWatch存儲庫,您可以在其中顯示和分析它CloudWatch儀表板、套用進一步的數學運算和查詢作業,並設定警示以監控此特定量度,並在觀察到的值不符合定義的警示條件時產生警示。