NDB
管理用戶端的 CLUSTERLOG STATISTICS
命令可以在其輸出中提供許多有用的統計資訊。提供叢集狀態資訊的計數器由交易協調器 (TC) 和本地查詢處理器 (LQH) 以 5 秒的報告間隔更新,並寫入叢集日誌。
交易協調器統計資訊。 每筆交易都有一個交易協調器,該協調器由下列方法之一選擇
以循環方式
依通訊鄰近性
在交易啟動時提供資料放置提示
您可以使用 ndb_optimized_node_selection
系統變數,判斷從給定的 SQL 節點啟動的交易使用哪種 TC 選擇方法。
同一個交易內的所有操作都使用相同的交易協調器,該協調器會報告下列統計資訊
交易計數。 這是使用此 TC 作為交易協調器,在上個間隔中啟動的交易數量。這些交易中的任何一筆都可能已在報告間隔結束時提交、已中止或仍未提交。
注意交易不會在 TC 之間遷移。
提交計數。 這是使用此 TC 作為交易協調器,在上個報告間隔中提交的交易數量。由於在此報告間隔中提交的某些交易可能是在上一個報告間隔中啟動的,因此
提交計數
可能大於交易計數
。讀取計數。 這是使用此 TC 作為交易協調器,在上個報告間隔中啟動的主要金鑰讀取操作數量,包括簡單讀取。此計數也包括作為唯一索引操作一部分執行的讀取。唯一索引讀取操作會產生 2 個主要金鑰讀取操作 — 1 個用於隱藏的唯一索引表,1 個用於執行讀取的表。
簡單讀取計數。 這是使用此 TC 作為交易協調器,在上個報告間隔中啟動的簡單讀取操作數量。
寫入計數。 這是使用此 TC 作為交易協調器,在上個報告間隔中啟動的主要金鑰寫入操作數量。這包括所有插入、更新、寫入和刪除,以及作為唯一索引操作一部分執行的寫入。
注意唯一索引更新操作可以在索引表和基底表上產生多個 PK 讀取和寫入操作。
AttrInfoCount。 這是使用此 TC 作為交易協調器,在上個報告間隔中針對主要金鑰操作接收的 32 位元資料字組數量。對於讀取,這與要求的欄數成正比。對於插入和更新,這與寫入的欄數及其資料大小成正比。對於刪除操作,這通常為零。
唯一索引操作會產生多個 PK 操作,因此會增加此計數。但是,傳送以描述 PK 操作本身的資料字組,以及傳送的金鑰資訊,不會在此處計算。傳送以描述要讀取掃描的欄,或描述 ScanFilters 的屬性資訊,也不會計入
AttrInfoCount
。並行操作。 這是使用此 TC 作為交易協調器,在上個報告間隔中啟動但未完成的主要金鑰或掃描操作數量。操作會在啟動時遞增此計數器,並在完成時遞減此計數器;這會在交易提交後發生。髒讀取和寫入(以及失敗的操作)會遞減此計數器。
並行操作
可以擁有的最大值是 TC 區塊可以支援的最大操作數量;目前,這是(2 * MaxNoOfConcurrentOperations) + 16 + MaxNoOfConcurrentTransactions
。(如需這些組態參數的詳細資訊,請參閱第 25.4.3.6 節「定義 NDB Cluster 資料節點」的交易參數章節。)中止計數。 這是使用此 TC 作為交易協調器,在上個報告間隔中中止的交易數量。由於在上個報告間隔中中止的某些交易可能是在上一個報告間隔中啟動的,因此
中止計數
有時可能大於交易計數
。掃描。 這是使用此 TC 作為交易協調器,在上個報告間隔中啟動的表格掃描數量。這不包括範圍掃描(即,已排序的索引掃描)。
範圍掃描。 這是使用此 TC 作為交易協調器,在上個報告間隔中啟動的已排序索引掃描數量。
本地讀取。 這是使用節點上的交易協調器執行,且該節點也持有記錄的主要片段副本的主要金鑰讀取操作數量。此計數也可以從
ndbinfo.counters
表格中的LOCAL_READS
計數器取得。本地寫入。 這是使用節點上的交易協調器執行,且該節點也持有記錄的主要片段副本的主要金鑰讀取操作數量。此計數也可以從
ndbinfo.counters
表格中的LOCAL_WRITES
計數器取得。
本地查詢處理器統計資訊(操作)。 每個本地查詢處理器區塊都有 1 個叢集事件(也就是說,每個資料節點處理程序 1 個)。操作會記錄在它們所操作的資料所在的 LQH 中。
單一交易可能會操作儲存在多個 LQH 區塊中的資料。
操作
統計資訊提供此 LQH 區塊在上個報告間隔中執行的本地操作數量,包括所有類型的讀取和寫入操作(插入、更新、寫入和刪除操作)。這也包括用來複寫寫入的操作。例如,在具有兩個片段複本的叢集中,寫入到主要片段複本會記錄在主要 LQH 中,而寫入到備份會記錄在備份 LQH 中。唯一金鑰操作可能會導致多個本地操作;但是,這不包括因表格掃描或已排序索引掃描而產生的本地操作,這些操作不會計算在內。
處理程序排程器統計資訊。 除了交易協調器和本地查詢處理器報告的統計資訊之外,每個 ndbd 處理程序都有一個排程器,該排程器也提供與 NDB Cluster 效能相關的有用指標。此排程器在無限迴圈中執行;在每個迴圈中,排程器會執行下列工作
將來自插槽的任何傳入訊息讀取到工作緩衝區中。
檢查是否有任何排定的訊息要執行;如果有的話,也將這些訊息放入工作緩衝區中。
(在迴圈中)執行工作緩衝區中的任何訊息。
傳送執行工作緩衝區中的訊息所產生的任何分散式訊息。
等候任何新的傳入訊息。
處理程序排程器統計資訊包括下列項目
平均迴圈計數器。 這是從先前清單的第三個步驟執行的迴圈次數。當 TCP/IP 緩衝區的利用率提高時,此統計資訊會增加大小。您可以利用此功能來監控在新增資料節點處理程序時效能的變化。
平均傳送大小和平均接收大小。 這些統計資訊可讓您分別評估節點之間寫入和讀取的效率。這些值以位元組為單位。值越高表示每個傳送或接收的位元組的成本越低;最大值為 64K。
若要記錄所有叢集日誌統計資訊,您可以在 NDB
管理用戶端中使用下列命令
ndb_mgm> ALL CLUSTERLOG STATISTICS=15
將 STATISTICS
的臨界值設定為 15 會使叢集日誌變得非常詳細,並以與叢集節點數量和 NDB Cluster 中的活動量成正比的速度快速增大。
如需有關與記錄和報告相關的 NDB Cluster 管理用戶端命令的詳細資訊,請參閱第 25.6.3.1 節「NDB Cluster 記錄管理命令」。