監視適用於 MySQL 的 Azure 資料庫彈性伺服器
注意
本文包含「從屬」一詞的參考,Microsoft 已不再使用該字詞。 從軟體中移除該字詞時,我們也會將其從本文中移除。
適用於 MySQL 的 Azure 資料庫 彈性伺服器可透過 Azure 監視器來監視伺服器。 監視伺服器的相關資料,可協助您疑難排解並最佳化您的工作負載。
在本文中,您會了解彈性伺服器的各種可用計量與伺服器記錄,如何協助您深入分析伺服器的行為。
計量
計量為數值,用於描述伺服器資源在特定時間某些層面的情況。 監視伺服器資源中對您而言最重要的項目,有助於對工作負載進行疑難排解及最佳化。 監視正確的計量,則可協助您維持伺服器和應用程式的效能、可靠性和可用性。
適用於 MySQL 的 Azure 資料庫 彈性伺服器提供各種計量,協助您瞭解工作負載的執行方式。 根據這項資料,您可以了解伺服器和應用程式遭受的影響。
所有 Azure 計量都有一分鐘的頻率,分別提供 30 天的歷程記錄。 您可以在計量上設定警示。 請參閱設定 適用於 MySQL 的 Azure 資料庫 - 彈性伺服器的計量警示。 其他工作包含設定自動化動作、執行進階分析,以及封存記錄。 如需詳細資訊,請參閱 Azure 計量概觀。
對計量進行疑難排解
有時,在 Azure 計量瀏覽器中建立、自訂或解譯圖表時會遇到問題。
圖表可能因各種因素而無法顯示任何資料。 這因素可能包括 Microsoft Insights 資源提供者未在您的訂用帳戶中註冊,或您沒有足夠的權限存取適用於 MySQL 的 Azure 資料庫 – 彈性伺服器。 還有可能是您的資源未在所選時間範圍內產生計量,或選取的時間範圍超過 30 天。
下列幾個原因可能會導致此問題:
- Microsoft.Insights 資源提供者未註冊:必須在您的訂用帳戶中註冊 Microsoft.Insights 資源提供者,才能瀏覽計量。 請遵循 Azure 資源提供者和類型中所述的步驟,手動註冊您的伺服器。
- 資源訪問權限權不足:請確定您對適用於 MySQL 的 Azure 資料庫彈性伺服器有足夠的權限,可以探索計量。 您的資源在選取的時間範圍內未發出計量 將圖表的時間變更為更大的範圍。 在 Azure 中,計量的存取權由 Azure 角色型存取控制 (Azure RBAC) 所控制。 您必須是監視讀者、監視參與者或參與者的成員,才能瀏覽任何資源的計量。
- 您的資源未在選取的時間範圍內發出計量:有多種原因可能造成這種情況。 其中一種原因是您的資源未在所選的時間範圍內產生計量。 為圖表設定更廣的時間範圍,然後查看是否可解決此問題。 如需有關對此問題進行疑難排解的詳細資訊,請參閱<Azure 監視器計量疑難排解指南>。
- 時間範圍超過 30 天:確認時間選擇器中的開始與結束日期之間的差距未超過 30 天。 如需有關對計量進行疑難排解的詳細資訊,請參閱<Azure 監視器計量疑難排解指南>。
- 虛線指示:在 Azure 監視器中,虛線表示兩個已知時間精細度資料點之間存在資料缺口或「Null 值」。 這是一種刻意的設計,可協助偵測遺漏的資料點。 如果您的圖表顯示虛線,表示存在資料遺漏。 請參閱文件以取得更多資訊。
如需有關對計量進行疑難排解的詳細資訊,請參閱<Azure 監視器計量疑難排解指南>。
注意
標示為已淘汰的計量會被排程從 Azure 入口網站中移除。 監視 適用於 MySQL 的 Azure 資料庫 彈性伺服器時,您應該忽略這些計量。
計量清單
這些計量適用於 適用於 MySQL 的 Azure 資料庫 彈性伺服器:
計量顯示名稱 | 計量 | 單位 | 描述 |
---|---|---|---|
MySQL 執行時間 | 運作時間 | 秒 | 此計量表示 MySQL 伺服器執行的時間長度。 |
主機 CPU 百分比 | cpu_percent | Percent | 主機 CPU 百分比是 CPU 的總使用率,可處理伺服器上所選期間的所有工作。 此計量包含 適用於 MySQL 的 Azure 資料庫 彈性伺服器實例和 Azure MySQL 程式的工作負載。 高 CPU 百分比可協助您發現資料庫伺服器的工作負載是否比可處理的工作負載還多。 此計量相當於總 CPU 使用率,類似於任何虛擬機器上的 CPU 使用率。 |
已耗用的 CPU 點數 | cpu_credits_consumed | 計數 | 這僅適用於高載層 系統會根據工作負載來計算 CPU 點數。 如需詳細資訊,請參閱 B 系列可高載虛擬機器大小。 |
剩餘的 CPU 點數 | cpu_credits_remaining | 計數 | 這僅適用於高載層 系統會根據工作負載來計算 CPU 剩餘點數。 如需詳細資訊,請參閱 B 系列可高載虛擬機器大小。 |
主機網路輸入 | network_bytes_ingress | Bytes | 伺服器上所選取期間傳入網路流量的總和。 此計量包含您資料庫的流量,以及 適用於 MySQL 的 Azure 資料庫 彈性伺服器功能,例如監視、記錄等。 |
主機網路輸出 | network_bytes_egress | Bytes | 伺服器上所選取期間傳出網路流量的總和。 此計量包含來自您資料庫的流量,以及 適用於 MySQL 的 Azure 資料庫 彈性伺服器功能,例如監視、記錄等。 |
使用中的連線數 | active_connection | 計數 | 伺服器的使用中連線數量。 作用中連線是連線到您伺服器的執行緒總數,其中也包含來自 azure_superuser 的執行緒。 |
儲存體 IO 百分比 | io_consumption_percent | Percent | 所選期間內使用的 IO 百分比。 IO 百分比適用於讀取與寫入 IOPS。 |
儲存體 IO 計數 | storage_io_count | 計數 | 伺服器每分鐘的 I/O 作業 (讀取和寫入) 總計數。 |
記憶體百分比 | memory_percent | Percent | 此計量表示 Azure MySQL (mysqld) 伺服器程序所佔用的記憶體百分比。 此計量是從您 適用於 MySQL 的 Azure 資料庫 彈性伺服器上可用的記憶體大小總計 (GB) 計算而來。 |
總計連線數 | total_connections | 計數 | 適用於 MySQL 的 Azure 資料庫 彈性伺服器實例的用戶端連線數目。 [連線總數] 是用戶端在所選期間內使用 TCP/IP 通訊協定進行的連線總和。 |
中止的連線 | aborted_connections | 計數 | 失敗嘗試連線到 適用於 MySQL 的 Azure 資料庫 彈性伺服器實例的總數,例如,因為認證不正確而連線失敗。 如需有關中止連線的詳細資訊,請參閱此文件。 |
查詢 | 筆查詢 | 計數 | 伺服器上每分鐘執行的查詢總數。 伺服器上來自資料庫工作負載和 Azure MySQL 程序的每分鐘查詢總數。 |
Slow_queries | slow_queries | 計數 | 所選時間範圍內伺服器上慢速查詢的總計數。 |
Active Transactions | active_transactions | 計數 | 此計量表示 MySQL 內的交易總數。 作用中交易包括所有已啟動但尚未提交或復原的交易。 |
儲存體明細計量
儲存器分解計量可讓您深入瞭解 適用於 MySQL 的 Azure 資料庫 彈性伺服器的記憶體使用量。 這些計量可讓您詳細細分儲存空間限制、儲存空間百分比、使用的儲存空間、使用的資料儲存空間、使用的 ibdata1 儲存空間、使用的 binlog 儲存空間、使用的其他儲存空間,以及所使用的備份儲存空間。 監視這些計量,您可以有效地管理儲存體資源、優化儲存體配置,確保高效利用伺服器儲存體容量。 瞭解記憶體分解計量可協助您做出明智的決策,以維護 適用於 MySQL 的 Azure 資料庫 彈性伺服器的效能和可用性。
下表列出 適用於 MySQL 的 Azure 資料庫 彈性伺服器可用的記憶體明細計量:
計量顯示名稱 | 計量 | 單位 | 描述 |
---|---|---|---|
儲存體限制 | storage_limit | Bytes | 為此伺服器設定的儲存體大小上限。 |
儲存體百分比 | storage_percent | Percent | 已使用的儲存體佔伺服器可用最大儲存體的百分比。 |
已使用的儲存體 | storage_used | Bytes | 使用中的儲存體數量。 此服務所使用的儲存體可能包括資料庫檔案、交易記錄和伺服器記錄。 |
已使用的資料儲存體 | data_storage_used | Bytes | 用於儲存資料庫檔案的儲存體數量。 |
已使用的 ibdata1 儲存體 | ibdata1_storage_used | Bytes | 用於儲存系統資料表空間 (ibdata1) 檔案的儲存體數量。 |
已使用的 Binlog 儲存體 | binlog_storage_used | Bytes | 用於儲存二進位記錄檔的儲存體數量。 |
已使用的其他儲存體 | other_storage_used | Bytes | 用於其他元件和中繼資料檔案的儲存體數量。 |
已使用的備份儲存體 | backup_storage_used | Bytes | 已使用的備份儲存體數量。 |
複寫計量
複寫計量可提供 適用於 MySQL 的 Azure 資料庫 彈性伺服器中複寫效能和狀態的寶貴見解。 這些計量可讓您監視複寫延遲、檢查複本和 HA IO/SQL 執行緒的狀態,以及衡量複寫延遲程度。 追蹤這些計量,您可以確保複寫設定的可靠性與效率、找出任何潛在的問題或延遲,並採取適當的動作,以維護資料一致性和可用性。 讓我們探索 適用於 MySQL 的 Azure 資料庫 彈性伺服器可用的不同複寫計量。
下表列出 適用於 MySQL 的 Azure 資料庫 彈性伺服器可用的複寫計量:
計量顯示名稱 | 計量 | 單位 | 描述 |
---|---|---|---|
複寫延遲 | replication_lag | 秒 | 複寫延遲是複本在重新執行從來源伺服器收到的交易時所落後的秒數。 此計量是從 "SHOW SLAVE STATUS" 命令的 "Seconds_behind_Master" 計算而來,而且僅適用於複本伺服器。 如需詳細資訊,請參閱針對 適用於 MySQL 的 Azure 資料庫 中的複寫延遲進行疑難解答 - 彈性伺服器」 |
複本 IO 狀態 | replica_io_running | 州/省 | 複本 IO 狀態會指出複寫 I/O 執行緒的狀態。 如果 I/O 執行緒正在執行,則計量值為 1,如果未執行,則為 0。 |
復本 SQL 狀態 | replica_sql_running | 州/省 | 複本 SQL 狀態會指出複寫 SQL 執行緒的狀態。 如果 SQL 執行緒正在執行,則計量值為 1,如果未執行,則為 0。 |
HA IO 狀態 | ha_io_running | 州/省 | HA IO 狀態指出 適用於 MySQL 的 Azure 資料庫 - 彈性伺服器中高可用性概念的狀態。 如果 I/O 執行緒正在執行,則計量值為 1,如果未執行,則為 0。 |
HA SQL 狀態 | ha_sql_running | 州/省 | HA SQL 狀態指出 適用於 MySQL 的 Azure 資料庫 - 彈性伺服器中高可用性概念的狀態。 如果 SQL 執行緒正在執行,則計量值為 1,如果未執行,則為 0。 |
HA 複寫延遲。 | ha_replication_lag | 秒 | HA 複寫延遲是 HA 待命伺服器在重新執行從來源伺服器收到的交易時所落後的秒數。 此計量是從 "SHOW SLAVE STATUS" 命令的 "Seconds_behind_Master" 計算而來,而且僅適用於 HA 待命伺服器。 |
增強型計量
除了 適用於 MySQL 的 Azure 資料庫 彈性伺服器所提供的標準計量之外,增強的計量也可供深入瞭解您伺服器的效能。 這些增強的計量會提供有關工作負載特定方面更細微的資訊。
DML 統計資料
DML (資料操作語言) 統計資料計量可讓您了解伺服器上執行的「選取」、「更新」、「插入」和「刪除」陳述式數目。 監視這些計量,您可以追蹤資料庫作業的使用情況和效能,並找出任何潛在的瓶頸或效率低下的問題。
計量顯示名稱 | 計量 | 單位 | 描述 |
---|---|---|---|
Com_select | Com_select | 計數 | 所選時間範圍內伺服器上執行的「選取」陳述式總計數。 |
Com_update | Com_update | 計數 | 所選時間範圍內伺服器上執行的「更新」陳述式總計數。 |
Com_insert | Com_insert | 計數 | 所選時間範圍內伺服器上執行的「插入」陳述式總計數。 |
Com_delete | Com_delete | 計數 | 所選時間範圍內伺服器上執行的「刪除」陳述式總計數。 |
DDL 統計資料
DDL (資料定義語言) 統計資料計量提供伺服器上執行「建立資料庫」、「卸除資料庫」、「建立資料表」、「卸除資料表」,以及「變更資料表」陳述式的頻率相關資訊。 這些計量可協助您了解資料庫中架構變更的頻率和影響,以便最佳化資料庫設計並改善整體效能。
計量顯示名稱 | 計量 | 單位 | 描述 |
---|---|---|---|
Com_create_db | Com_create_db | 計數 | 所選時間範圍內伺服器上執行的「建立資料庫」陳述式總計數。 |
Com_drop_db | Com_drop_db | 計數 | 所選時間範圍內伺服器上執行的「卸除資料庫」陳述式總計數。 |
Com_create_table | Com_create_table | 計數 | 所選時間範圍內伺服器上執行的「建立資料表」陳述式總計數。 |
Com_drop_table | Com_drop_table | 計數 | 所選時間範圍內伺服器上執行的「卸除資料表」陳述式總計數。 |
Com_Alter | Com_Alter | 計數 | 所選時間範圍內伺服器上執行的「變更資料表」陳述式總計數。 |
Innodb 計量
Innodb 計量著重於 InnoDB 儲存引擎的效能,這是 適用於 MySQL 的 Azure 資料庫 彈性伺服器的預設引擎。 這些計量包括 InnoDB 資料列鎖定時間、InnoDB 資料列鎖定等候次數、Innodb 緩衝集區讀取數量、Innodb 緩衝集區讀取請求數量等等。 監視這些計量,您可以深入了解資料庫儲存體和快取機制的效率與有效性。
這些增強的計量提供寶貴的資訊,以優化您的工作負載,並改善 適用於 MySQL 的 Azure 資料庫 彈性伺服器的效能。 您可以利用這些計量,作出資料驅動型決策,來增強資料庫作業的可擴縮性、可靠性和效率。
計量顯示名稱 | 計量 | 單位 | 描述 |
---|---|---|---|
InnoDB 資料列鎖定時間 | innodb_row_lock_time | 毫秒 | InnoDB 資料列鎖定時間會以毫秒為單位來測量 InnoDB 資料列層級鎖定的持續時間。 |
InnoDB 資料列鎖定等候 | innodb_row_lock_waits | 計數 | InnoDB 資料列鎖定等候計量會計算查詢獲得 InnoDB 資料列層級鎖定經歷的等候次數。 |
Innodb_buffer_pool_reads | Innodb_buffer_pool_reads | 計數 | InnoDB 引擎無法從 Innodb 緩衝集區擷取,而必須從磁碟擷取的邏輯讀取總計數。 |
Innodb_buffer_pool_read_requests | Innodb_buffer_pool_read_requests | 計數 | 要從 Innodb 緩衝集區讀取的邏輯讀取要求總計數。 |
Innodb_buffer_pool_pages_free | Innodb_buffer_pool_pages_free | 計數 | InnoDB 緩衝集區中可用頁面的總計數。 |
Innodb_buffer_pool_pages_data | Innodb_buffer_pool_pages_data | 計數 | 包含資料的 InnoDB 緩衝集區中頁面總計數。 數量包括已中途分頁和乾淨頁面。 |
Innodb_buffer_pool_pages_dirty | Innodb_buffer_pool_pages_dirty | 計數 | InnoDB 緩衝集區中包含中途分頁的總頁數。 |
MySQL 歷程清單長度 | trx_rseg_history_len | 計數 | 此計量會計算資料庫中的變更數目,特別是包含先前變更的記錄數量。 這與資料的變動率有關,會造成建立新的資料列版本。 歷程清單長度增加可能會影響資料庫的效能。 |
MySQL 鎖定逾時 | lock_timeouts | 計數 | 此計量表示查詢由於鎖定發生的逾時次數。 一個查詢等候另一個查詢佔用的資料列或資料表鎖定的時間超過 innodb_lock_wait_timeout 設定的時間時,通常會發生這種情況。 |
MySQL 鎖定鎖死 | lock_deadlock | 計數 | 此計量代表所選期間 適用於 MySQL 的 Azure 資料庫 彈性伺服器實例上的死結數目。 |
伺服器記錄
在 適用於 MySQL 的 Azure 資料庫 彈性伺服器中,用戶可以設定和下載伺服器記錄,以協助疑難解答工作。 啟用此功能后,適用於 MySQL 的 Azure 資料庫 彈性伺服器實例會開始擷取所選記錄類型的事件,並將其寫入檔案。 然後,您可以使用 Azure 入口網站和 Azure CLI 來下載檔案以使用它們。 伺服器記錄功能預設為停用。 如需如何啟用伺服器記錄的資訊,請參閱啟用和下載 適用於 MySQL 的 Azure 資料庫 的伺服器記錄 - 彈性伺服器
伺服器記錄支援啟用和下載慢速查詢記錄和錯誤記錄。 若要執行資料的歷程記錄分析,請在 Azure 入口網站中伺服器的 [診斷設定] 窗格上,新增診斷設定以將記錄傳送至 Log Analytics 工作區、Azure 儲存體或事件中樞。 如需詳細資訊,請參閱設定診斷記錄。
伺服器記錄保留
針對 適用於 MySQL 的 Azure 資料庫 彈性伺服器實例啟用記錄時,記錄最多可從其建立起七天使用。 如果可用記錄的大小總計超過 7 GB,則除非有空間可用,否則會刪除最舊檔案。 伺服器記錄的 7 GB 儲存體限制是免費的,且無法擴充。 記錄會每隔 24 小時或 500 MB 輪替一次 (視何者先到達)。