本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
系統監控
適用於 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 的數據庫管理系統利用存儲子系統,它由存儲磁盤組成磁碟上結構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 指標](images/cloudwatch-metrics-rds-console.png)
下列圖表顯示的類似測量結果CloudWatch儀表板。
![CloudWatch亞馬遜 RDS 指標顯示在CloudWatch安慰](images/cloudwatch-metrics-cw-console.png)
另一組作業系統測量結果是由增強型監控對於亞馬遜 RDS。此工具提供即時系統指標和作業系統程序資訊,可讓您更深入瞭解 Amazon RDS for MariaDB 和 Amazon RDS for MySQL 資料庫執行個體的運作狀態。當你啟用增強型監控在資料庫執行個體上設定所需的粒度,此工具會收集作業系統指標和程序資訊,您可以在亞馬遜 RDS 控制台,如下面的屏幕。
![增強型監控收集的 OS 測量結果](images/enhanced-monitoring.png)
增強型監控提供的一些關鍵指標包括:
-
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 主控台中的作業系統程序清單](images/os-process-list.png)
Amazon RDS 將增強型監控中的指標交付到您的CloudWatch日誌帳戶。Amazon RDS 主控台上顯示的監控資料會從中擷取CloudWatch記錄檔。你也可以擷取資料庫執行個體的指標做為日誌串流從CloudWatch記錄檔。這些量度以 JSON 格式儲存。您可以從中使用增強型監控 JSON 輸出CloudWatch登入您選擇的監控系統。
為了在圖形上顯示CloudWatch儀表板並創建警報,該警報將在指標違反定義的閾值時啟動操作,您必須在中創建指標過濾器CloudWatch從CloudWatch記錄檔。如需詳細指示,請參閱AWS RE: 發表文章
下列範例說明自訂量度CPU.User
在Custom/RDS
命名空間。此自訂量度是透過篩選cpuUtilization.user
增強的監控量度CloudWatch記錄檔。
![CPU. 用戶自定義指標](images/cpu-user-custom-metric.png)
當測量結果在CloudWatch存儲庫,您可以在其中顯示和分析它CloudWatch儀表板、套用進一步的數學運算和查詢作業,並設定警示以監控此特定量度,並在觀察到的值不符合定義的警示條件時產生警示。