本文為您介紹Hologres各監控指標的含義。通過瞭解這些監控指標,您可以根據業務需求選擇適合的指標,即時查看當前執行個體的資源使用方式和SQL語句的執行情況,及時識別系統報錯並處理執行個體異常。
注意事項
對QE和FixedQE的特別說明:
QE指的是HQE、SQE等Hologres自研向量計算引擎XQE的總稱,在慢Query日誌中,Engine Type={XQE}的Query在監控指標中都屬於QE。
FixedQE是指走Fixed Plan鏈路的執行引擎,在慢Query日誌中,Engine Type={FixedQE}(V2.2版本以下均為SDK)的Query在監控指標中屬於FixedQE。
對Command Type的特別說明:
SQL是什麼類型,就會歸屬為什麼類型的Command Type,例如:SQL是
INSERT xxx
或者INSERT xxx ON CONFLICT DO UPDATE/NOTHING
,都會被識別為INSERT類型。UNKNOWN:為系統無法識別的SQL進行分類,無法識別的原因可能是SQL書寫錯誤導致引擎無法識別。
UTILITY:表示非SELECT、INSERT、DELETE或UPDATE類型的SQL,例如CREATE、DROP等。
在CloudMonitor中,每個指標會有一個唯一的metricid(CloudMonitor指標ID),以方便更直觀地映射到具體的監控指標。不同的執行個體類型,指標ID會有不同的首碼,通用型執行個體、從執行個體、計算群組執行個體、湖倉加速(共用叢集)分別對應
standard_
、follower_
、warehouse_
、shared_
。每種執行個體類型支援的指標如下:通用型執行個體:通用型執行個體支援的指標。
從執行個體:從執行個體支援的指標。
計算群組:計算群組執行個體支援的指標。
湖倉加速(共用叢集):湖倉加速執行個體支援的指標。
如果指標中顯示暫無資料,可能是當前執行個體版本暫不支援該指標,或者是長期沒有資料。
監控資料最多保留30天。
存取控制
當前Hologres管理主控台的監控頁面來源於CloudMonitor,如果您使用RAM使用者查看監控資訊,則需要根據業務情況為RAM使用者授予一定的操作許可權,具體如下:
AliyunCloudMonitorFullAccess:管理CloudMonitor的許可權。
AliyunCloudMonitorReadOnlyAccess:唯讀訪問CloudMonitor的許可權。
RAM使用者授權詳情請參見為RAM使用者授權。
監控指標一覽表
當前Hologres提供的監控指標如下:
分類 | 指標 | 指標描述 | 支援的執行個體類型 | 備忘 |
CPU | 執行個體CPU的使用率。 | 通用型執行個體、從執行個體、計算群組執行個體 | 無 | |
執行個體內每個Worker的CPU使用率。 | ||||
Memory | 執行個體內總的記憶體使用量率。 | 通用型執行個體、從執行個體、計算群組執行個體 | 無 | |
執行個體內每個Worker的記憶體使用量率。 | ||||
執行個體中記憶體按照system、meta、cache、query及background分類的記憶體使用量率。 | 通用型執行個體、從執行個體、計算群組執行個體 | 僅Hologres V2.0及以上版本支援。 | ||
使用QE執行引擎的Query的記憶體使用量量。 | 僅Hologres V2.0.44及以上版本、V2.1.22及以上版本支援。 | |||
使用QE執行引擎的Query的記憶體使用量率。 | ||||
Query QPS and RPS | 執行個體內Query的總QPS。 | 通用型執行個體、從執行個體、計算群組執行個體、共用叢集執行個體 | Query QPS >= QE QPS + FixedQE QPS。 說明 總的QPS會採集所有的Query,包括UNKNOWN、UTILITY、Engine Type={PG}等的Query,因此總QPS會大於或等於QE+FixedQE QPS。 | |
執行個體內使用QE引擎的Query的QPS。 | 通用型執行個體、從執行個體、計算群組執行個體 | 僅Hologres V2.2及以上版本支援。 | ||
執行個體內使用FixedQE(原名SDK)引擎的Query的QPS。 | ||||
執行個體內DML Query的總RPS。 | 通用型執行個體、計算群組執行個體 | DML RPS = QE RPS + FixedQE RPS | ||
執行個體內使用QE引擎的DML的RPS。 | 僅Hologres V2.2及以上版本支援。 | |||
執行個體內使用FixedQE引擎的DML的RPS。 | ||||
Query Latency | 執行個體內Query的延遲。 | 通用型執行個體、從執行個體、計算群組執行個體、共用叢集執行個體 | 無 | |
執行個體內使用QE引擎的Query的延遲。 | 通用型執行個體、從執行個體、計算群組執行個體 | 僅Hologres V2.2及以上版本支援。 | ||
執行個體內使用FixedQE引擎的Query的延遲。 | ||||
Query在Optimization階段的耗時。 | 通用型執行個體、從執行個體、計算群組執行個體、共用叢集執行個體 | 僅Hologres V2.0.44及以上版本、V2.1.22及以上版本支援。 | ||
Query在Start Query階段的耗時。 | ||||
Query在Get next階段的耗時。 | ||||
Query的P99延遲。 | 無 | |||
本執行個體正在啟動並執行Query中,已耗用時間最長的Query的耗時。 | ||||
Failed Query QPS | 執行個體內失敗Query的總QPS。 | 通用型執行個體、從執行個體、計算群組執行個體、共用叢集執行個體 | 失敗Query QPS >= QE失敗Query QPS + FixedQE失敗Query QPS。 說明 失敗Query QPS採集的是總的失敗Query,包括UNKNOWN、UTILITY、Engine Type={PG}等失敗的Query,因此總失敗QPS會大於或等於QE+FixedQE 失敗QPS。 | |
執行個體內使用QE引擎的失敗Query的QPS。 | 通用型執行個體、從執行個體、計算群組執行個體 | 僅Hologres V2.2及以上版本支援。 | ||
執行個體內使用FixedQE引擎的失敗Query的QPS。 | 通用型執行個體、計算群組執行個體 | |||
Locks | FE節點中的DDL鎖耗時。 | 通用型執行個體、從執行個體、計算群組執行個體 | 僅Hologres V2.0.44及以上版本、V2.1.22及以上版本支援。 | |
FixedQE的鎖耗時,通常為HQE鎖。 | ||||
執行個體內HQE鎖的延遲,包括FixedQE的HQE鎖延遲。 | ||||
Connection | 執行個體內使用的總串連數。 | 通用型執行個體、從執行個體、計算群組執行個體、共用叢集執行個體 | 無 | |
執行個體內每個DB使用的串連數。 | 通用型執行個體、從執行個體、計算群組執行個體 | |||
執行個體內每個FE使用的串連數。 | ||||
執行個體內的串連數使用率,預設用串連數使用率最高的FE。 | ||||
Query Queue | 執行個體內正在等待執行但尚未開始處理的查詢請求的數量。 | 通用型執行個體、從執行個體、計算群組執行個體 | 僅Hologres V3.0及以上版本支援。 | |
執行個體內每秒提交至系統處理隊列中的查詢請求數量。 | ||||
每秒鐘從等待狀態轉為執行狀態的查詢請求數量。 | ||||
開始運行但尚未完成的查詢中,根據不同的執行狀態,統計每秒能夠處理的請求數量。 | ||||
所有查詢請求從進入隊列到開始被處理期間的平均值(不包括實際執行查詢所需的時間)。 | ||||
IO | 讀取標準儲存資料的I/O輸送量。 | 通用型執行個體、從執行個體、計算群組執行個體 | 無 | |
寫入標準儲存資料的I/O輸送量。 | 通用型執行個體、計算群組執行個體 | |||
讀取低頻儲存資料的I/O輸送量。 | 通用型執行個體、從執行個體、計算群組執行個體 | |||
寫入低頻儲存資料的I/O輸送量。 | 通用型執行個體、計算群組執行個體 | |||
Storage | 標準儲存已使用的儲存量。 | 通用型執行個體、計算群組執行個體 | 無 | |
標準儲存量的使用率。 | ||||
低頻儲存已使用的儲存量。 | ||||
低頻儲存量的使用率。 | ||||
Frameworks | 每個FE的Replay延遲。 | 通用型執行個體、從執行個體、計算群組執行個體 | 僅Hologres V2.2及以上版本支援。 | |
開啟Replication後的Shard多副本之間的延遲。 | 無 | |||
從執行個體讀取主執行個體資料時的延遲。僅從執行個體支援顯示。 | ||||
異地容災執行個體之間的檔案同步延遲。 | 通用型執行個體 | |||
Auto Analyze | 每個DB內統計資訊缺失的表個數。 | 通用型執行個體、計算群組執行個體 | 僅Hologres V2.2及以上版本支援。 | |
Serverless Computing | 開啟Serverless Computing後,在Serverless Computing中已耗用時間最長的Query的時間長度。 | 通用型執行個體、計算群組執行個體 | 僅Hologres V2.1及以上版本支援。 | |
Query在Serverless Computing資源集區中的排隊數量。 | 僅Hologres V2.2及以上版本支援。 | |||
執行個體實際使用的Serverless Computing資源量與可申請的最大資源量之間的比率。 | ||||
Binlog | 每秒消費Binlog的條數。 | 通用型執行個體、從執行個體、計算群組執行個體 | 僅Hologres V2.2及以上版本支援。 | |
每秒消費Binlog的位元組數。 | ||||
每個FE的Walsender 的使用數。 | ||||
Walsender使用率最高的FE的Walsender使用率。 | ||||
Computing Resource | 執行個體分時彈性彈出的Core數。 | 計算群組執行個體 | 僅Hologres V2.2.21及以上版本支援。 | |
Gateway | 執行個體內每個Gateway的CPU使用率。 | 計算群組執行個體 | 僅Hologres V2.0及以上版本支援。 | |
執行個體內每個Gateway的記憶體使用量率。 | 僅Hologres V2.0及以上版本支援。 | |||
系統在一秒鐘內能夠接受並成功建立的新串連的最大數量。 | 僅Hologres V2.1.12及以上版本支援。 | |||
每秒鐘通過Gateway進入系統的資料量。 | 僅Hologres V2.1及以上版本支援。 | |||
每秒鐘通過Gateway發送至外部系統的資料量。 | 僅Hologres V2.1及以上版本支援。 |
CPU
CPU相關的指標如下。
執行個體CPU使用率(%)
執行個體CPU指執行個體整體的CPU使用率,代表執行個體的計算負載情況。
在沒有查詢的時候,後台常駐進程或者非同步執行的Compaction都可能佔用CPU,因此執行個體無查詢負載時,有少量CPU使用率是正常現象。
Hologres因其設計原理可以充分發揮多核並行計算的能力,通常來說單個查詢可以迅速將CPU使用率提高到100%,這說明計算資源得到了充分利用。
當執行個體CPU使用率長期接近100%時(例如CPU使用率連續3小時滿載100%,或者連續12小時達到90%以上等),說明執行個體負載非常高,這通常意味著CPU資源成為了系統的瓶頸,需要分析具體的業務情境和查詢,以判斷原因。可以從以下幾方面判斷:
是否有比較大的離線資料匯入(INSERT),且資料規模還在日漸增長。
是否有高QPS的查詢或寫入,共同佔用了CPU的全部資源。
是否有上述或上述情境以外的混合負載。
如果確定是業務情境需要,將資源用滿,可以對執行個體進行擴容,以適應更複雜的查詢或更大的資料量。
執行個體CPU使用率相關問題說明,請參見監控指標常見問題。
Worker節點CPU使用率(%)
Worker節點CPU指執行個體內每個Worker的CPU使用率,代表每個Worker的計算負載情況。Hologres根據執行個體規格,提供不同的Worker節點數,詳情見執行個體管理。
當前指標只有Hologres V1.1及以上版本支援顯示。
當執行個體內所有Worker節點CPU使用率都長期接近100%時,說明執行個體的負載非常高,需要根據業務情況合理地最佳化資源使用或者擴容。
當執行個體只有部分Worker節點的CPU水位比較高,部分Worker節點的CPU水位較低時,說明Worker資源有傾斜,常見傾斜原因以及排查方法請參見監控指標常見問題。
Memory
記憶體相關的指標如下。
執行個體記憶體使用量率(%)
執行個體記憶體使用量率代表執行個體整體的記憶體綜合使用率。
Hologres的記憶體資源採用預留模式,在沒有查詢的時候,也會有資料表的中繼資料、索引、資料緩衝等載入到記憶體中,以便加快檢索和計算,此時記憶體使用量率不為零是正常情況。理論上,在無查詢的情況,記憶體使用量率達到30%~40%左右都屬於正常情況。
當記憶體使用量率穩定增長,長期接近80%時,通常意味著記憶體資源可能成為了系統的瓶頸,可能會影響執行個體的穩定性或效能。
可以根據執行個體記憶體分布使用率,並結合業務的QPS等指標綜合判斷誰佔用了較高的記憶體,從而做相應的最佳化。詳情可以參見OOM常見問題排查指南。
Worker節點記憶體使用量率(%)
Worker節點記憶體使用量率指執行個體內每個Worker的記憶體使用量率,代表每個記憶體的計算負載情況。Hologres根據執行個體規格,提供不同的Worker節點數,詳情見執行個體管理。
當前指標僅Hologres V1.1及以上版本支援顯示。
當執行個體內所有Worker節點的記憶體水位都長期接近80%時,說明執行個體的負載非常高,需要根據業務情況合理地最佳化資源或者擴容。
當執行個體只有部分Worker節點記憶體水位比較高,部分Worker節點記憶體水位較低時,說明Worker資源有傾斜,常見傾斜原因以及排查方法請參見監控指標常見問題。
計算群組記憶體的詳細使用率(%)
在Hologres中,記憶體會分為系統(System)、中繼資料(Meta)、緩衝(Cache)、計算(Query)、後端進程(Background)等幾個部分。從V2.0.15版本開始,支援執行個體記憶體分布使用率的監控指標,可以通過該指標查看記憶體的分布情況,從而進行針對性最佳化。主要包括以下指標:
System:系統記憶體,指系統組件運行時佔用的記憶體,組件包括Holohub、Gateway、FE(Frontend)等,其中FE會包括FE Master和FE Query,因此System記憶體也會隨著Query的運行而波動。
Cache:緩衝佔用的記憶體,緩衝的記憶體主要包括:
SQL相關的緩衝:例如result cache、block cache等,與SQL有關,根據Query運行狀態動態變化。如果SQL有命中緩衝(例如通過explain analyze查看Physical read bytes欄位,資料越小說明快取命中率越高),將會提升查詢效能。但SQL的緩衝也有一定的上限。
Meta緩衝:包括表的Schema Meta、檔案Meta等,為了Query的高效執行,Hologres的儲存引擎會預先將Meta相關的資料載入進緩衝中,從而減少Meta的冷訪問,提升查詢效能。
緩衝有固定大小,一般佔用執行個體總記憶體的30%左右。當執行個體沒有查詢負載時,也會存在一定的緩衝佔用,主要是Meta佔用的緩衝。
Meta:中繼資料、檔案等佔用的記憶體,中繼資料的記憶體使用量採用Lazy Open模式,即頻繁被訪問的中繼資料會常駐記憶體中,未被訪問的中繼資料則不會放在記憶體中,以此來減少中繼資料對記憶體的佔用。一般建議Meta佔用的記憶體維持在總記憶體的30%以內。如果Meta佔用的記憶體較高,說明執行個體中訪問的檔案數較多,或者分區表較多,可以通過表統計資訊查看與分析對執行個體中的表做相關治理。
Query:代表執行SQL時消耗的記憶體,與Query的複雜度、並發度等正相關。主要包括Fixed Plan、HQE、SQE等執行SQL消耗的記憶體。
Query計算的記憶體會採用彈性機制,即單個Worker最低使用20 GB,最高使用根據執行個體的總空閑記憶體浮動,其他分類中記憶體佔用越多,會導致計算部分彈性的記憶體越少。
如果Query佔用的記憶體較多,甚至出現了OOM的現象,說明Query較複雜或者並發度較高,建議對Query調優或者對執行個體擴容,以避免執行個體高水位運行,詳情請參見最佳化查詢效能。
Background:背景工作佔用的記憶體,包括Compaction、Flush等任務,一般情況下,Background消耗的記憶體較少,約在5%以內。但如果對錶修改了索引、執行了大量的寫入或更新等操作,Background的記憶體佔用將會上升,並隨任務的結束而下降。
Memtable:記憶體表佔用的記憶體,在Hologres中Memtable(記憶體表)主要用於儲存有即時寫入、更新、刪除等操作完成之後的表資料。一般Memtable的記憶體佔用在5%以內。
QE Query記憶體使用量量(byte)
指執行個體中使用了HQE、SQE等Hologres自研引擎XQE的Query,在運行過程中的記憶體使用量量。
該指標僅Hologres V2.0.44及以上版本、V2.1.22及以上版本支援顯示。
在記憶體細分類中,Query的記憶體使用量量大於QE Query記憶體使用量量。
通過QE Query記憶體使用量量可知該執行個體中啟動並執行Query複雜度,如果記憶體使用量量較多,說明Query比較複雜,使用的記憶體較多。
QE Query記憶體使用量率(%)
QE Query記憶體使用量率可以判斷當前執行個體的負載情況,如果QE記憶體使用量率較高,可能因記憶體不足而導致OOM,需要治理Query或者擴容。
該指標僅Hologres V2.0.44及以上版本、V2.1.22及以上版本支援顯示。
Query QPS and RPS
Query QPS(countS)
Query QPS代表執行個體中平均每秒SQL語句的執行次數,為執行個體內總的QPS。包括SELECT、INSERT、UPDATE和DELETE、UTILITY、UNKNOWN等SQL語句。Query QPS >= QE Query + FixedQE Query QPS
。
QE Query QPS(countS)
指執行個體內使用QE引擎的Query每秒執行的次數。包括SELECT、INSERT、UPDATE和DELETE四種類型的SQL語句。
該指標僅Hologres V2.2及以上版本支援顯示。
FixedQE Query QPS(countS)
指執行個體內使用FixedQE引擎的Query每秒執行的次數(走Fixed Plan鏈路,原名SDK)。包括SELECT、INSERT、UPDATE和DELETE四種類型的SQL語句。
該指標僅Hologres V2.2及以上版本支援顯示。
DML RPS(countS)
DML RPS代表執行個體內Query每秒匯入或者更新的資料記錄條數,包括INSERT、UPDATE和DELETE三種類型的SQL語句,因此DML RPS = QE DML RPS + FixedQE DML RPS
。
QE DML RPS(countS)
指執行個體內使用QE引擎的Query每秒匯入或者更新的資料記錄條數,包括INSERT、UPDATE和DELETE三種類型的SQL語句。
該指標僅Hologres V2.2及以上版本支援顯示。
使用QE引擎匯入或更新資料的常見情境如下:
MaxCompute或OSS外部表格的大量匯入或更新。
Copy批量寫入或更新。
Hologres表之間的大量匯入。
FixedQE DML RPS(countS)
指執行個體內使用FixedQE引擎的Query每秒匯入或者更新的資料記錄條數(原指標名為SDK),包括INSERT、UPDATE和DELETE三種類型的SQL語句。其中:
該指標僅Hologres V2.2及以上版本支援顯示。
常見的FixedQE情境包括:
通過Data IntegrationDataX離線寫入。
SQL或JDBC通過
INSERT INTO VALUES()
語句寫入。
Query Latency
Query延遲(milliseconds)
執行個體內啟動並執行所有Query的平均延遲,包括SELECT、INSERT、UPDATE和DELETE、UTILITY、UNKNOWN等SQL語句。Query延遲 >= MAX(QE Query延遲,FixedQE Query延遲)
。
QE Query延遲(milliseconds)
執行個體內使用QE引擎的Query的平均延遲,包括SELECT、INSERT、UPDATE和DELETE四種類型的Query。
該指標僅Hologres V2.2及以上版本支援顯示。
對於QE Query的延遲增加排查,可以結合Optimization耗時、Start Query耗時、Get next耗時、QE QPS等指標一起排查。
FixedQE Query延遲(milliseconds)
執行個體內使用FixedQE引擎的Query的平均延遲,包括SELECT、INSERT、UPDATE和DELETE四種類型的Query。
該指標僅Hologres V2.2及以上版本支援顯示。
FixedQE Query延遲高可能是如下原因:
偶發變高:可能是因為存在HQE鎖,可以查看FixedQE的後端拿鎖耗時是否增加,若增加說明有鎖,可以通過Query洞察排查具體的拿鎖Query。
一直延遲高:可能是因為建表不合理,或著受其他複雜Query的影響等,可以參考Blink和Flink常見問題及診斷進行排查。
Optimization階段的耗時(milliseconds)
執行個體內Query在Optimization階段的耗時,該階段主要用於最佳化器QO解析SQL,並產生對應的物理Plan以便執行引擎跟進Plan去執行。
該指標僅Hologres V2.0.44及以上版本、V2.1.22及以上版本支援顯示。
如果Optimization階段耗時較長,說明執行個體中Query較複雜,導致解析Query耗費較多時間。如果執行個體中的Query只是傳入的參數不同,建議使用Prepared Statement模式降低QO耗時,詳情請參見JDBC。
Start Query階段的耗時(milliseconds)
執行個體內Query在Start Query階段的耗時,該階段為真正開始執行Query前的初始化階段,包括了加鎖,對齊Schema版本等過程。
該指標僅Hologres V2.0.44及以上版本、V2.1.22及以上版本支援顯示。
如果Start Query階段耗時較長,通常是由於等待鎖或者高CPU佔用導致資源等待,可以結合執行計畫等細緻分析。
Get next階段的耗時(milliseconds)
Get next是指從Start Query階段結束開始計算,到所有結果均返回所花費的時間,包括計算、返回結果等步驟的耗時。
該指標僅Hologres V2.0.44及以上版本、V2.1.22及以上版本支援顯示。
如果Get next階段耗時較長,通常是由於計算複雜導致,可以結合QE記憶體使用量、QE QPS等指標一起排查。如無明顯異常,也可能是用戶端在等待返回資料。
Query P99延遲(milliseconds)
執行個體內啟動並執行所有Query的P99延遲,包括SELECT、INSERT、UPDATE和UTILITY、以及系統Query等。
本執行個體正在運行中Query最長的時間長度(milliseconds)
指執行個體中正在啟動並執行Query持續時間長度,預設彙報當前時刻已耗用時間最長的Query時間長度,包括SELECT、INSERT、UPDATE和DELETE、UTILITY、UNKNOWN等SQL語句。
該指標僅Hologres V1.1及以上版本支援顯示。
Hologres是分布式系統,根據執行個體的規格會有不同的Worker節點。Query運行時會在不同的Worker節點隨機分發。正在啟動並執行Query持續時間長度會根據每個Worker節點上Query運行時間長度,彙報當前時刻已耗用時間最長的Query,例如當前時刻不同的Worker節點分別在運行持續時間長度為10分鐘、5分鐘和30秒的Query,此時正在啟動並執行Query持續時間長度將會顯示為10分鐘。
可以根據Query的運行時間長度,並結合活躍Query或者慢Query日誌判斷Query運行時間長度是否合理,排查並解決Query已耗用時間較長的問題,及早處理死結、卡住等情況。
監控指標每隔1分鐘彙報一次,因此指標中“正在啟動並執行持續時間長度” x軸開始時間與Query真正開始的時間有誤差,該指標僅作為異常情況問題排查的輔助指標,即通過該指標快速定位到執行個體中運行時間長度較長的Query,作為自營運的輔助指標,不提供精確Query已耗用時間。
Failed Query QPS
失敗Query QPS(milliseconds)
失敗Query數代表執行個體內平均每秒SQL語句失敗的次數,包括SELECT、INSERT、UPDATE和DELETE、UTILITY、UNKNOWN等SQL語句。失敗Query QPS >= QE 失敗Query QPS + FixedQE 失敗Query RPS
。
可以根據失敗的Query類型和次數,在慢Query日誌中尋找失敗的Query並分析原因,以提高系統的可用性。
QE失敗Query QPS(milliseconds)
指執行個體內使用QE引擎的Query每秒失敗的次數。包括SELECT、INSERT、UPDATE和DELETE四種SQL語句。
該指標僅Hologres V2.2及以上版本支援顯示。
FixedQE失敗Query QPS(milliseconds)
指執行個體內使用FixedQE引擎的Query每秒失敗的次數。包括SELECT、INSERT、UPDATE和DELETE四種SQL語句。
該指標僅Hologres V2.2及以上版本支援顯示。
Locks
FE等鎖的最大耗時(milliseconds)
Hologres是分布式系統,會有多個FE節點負責SQL的解析、分發及路由。當不同的串連請求被路由到同一個FE節點,並對同一個表做DDL操作(如CREATE、DROP)時,會產生FE鎖。FE等鎖耗時反映了每個FE等待DDL鎖的耗時。
該指標僅Hologres V2.2及以上版本支援顯示。
一般來說,只要執行DDL操作就可能會產生鎖耗時,FE鎖耗時超過5分鐘,同時“FE replay延遲”指標也出現較高的延遲,可能是因為有DDL執行卡住了,通過Query管理排查已耗用時間較長的Query並及時終止該進程。
FixedQE的後端拿鎖耗時(milliseconds)
對於INSERT、DELETE或UPDATE等類型,走HQE鏈路的Query會使用表鎖,走FixedPlan鏈路的Query會使用行鎖。FixedQE的後端拿鎖表示走FixedPlan鏈路的Query涉及到的表被加了行鎖,同時走HQE鏈路的Query對該表加了表鎖,導致FixedPlan的Query需要等鎖,進而導致FixedQE拿鎖耗時增加。
該指標僅Hologres V2.2及以上版本支援顯示。
如果FixedQE的拿鎖耗時較長,可以通過慢Query日誌定位到比較慢的FixedQE Query,然後通過Query洞察排查拿鎖的HQE Query。
執行個體總的後端拿鎖耗時(milliseconds)
表示INSERT、DELETE或UPDATE類型的Query在執行個體中總的拿鎖耗時,包括FixedQE的拿鎖耗時和HQE Query之間的拿鎖耗時。
該指標僅Hologres V2.2及以上版本支援顯示。
如果拿鎖耗時較長,可以通過慢Query日誌定位到比較慢的INSERT、DELETE或UPDATE類型的Query,再通過Query洞察排查拿鎖的HQE Query。
Connection
總串連數(個)
Hologres根據執行個體的規格,設定不同的預設總串連數,詳情請參見執行個體管理。總串連數代表執行個體當前已經使用的串連總個數,包括active(活躍)、idle(空閑)、idle in transaction(已失敗事務中的空閑狀態)等串連狀態。可以通過Query管理查看當前的串連使用方式,當出現串連不足時,及時kill空閑串連。
串連數(按DB展開)(個)
按照DB匯總的串連數使用個數,判斷每個DB的串連使用方式。其中:
串連數(按FE展開)(個)
按照FE匯總的串連數使用個數,判斷每個FE的串連使用方式。其中:
串連數使用率最高的FE的串連數使用率(%)
代表使用率最高的FE(Frontend)節點的使用率,彙報每個FE節點的最大值,即Max(frontend_connection_used_rate)
,可以更加方便地知道使用的串連數是否即將超過某個Frontend節點的最大串連數,造成無法串連的情況。多個FE節點之間採用輪詢策略(Round Robin),建立串連依次與不同Frontend節點建立物理串連。可以通過Query管理查看當前的串連使用方式,當出現串連不足時,及時kill空閑串連。
Query Queue
查詢隊列中排隊狀態的Query數量(count)
指執行個體中正在等待執行但尚未開始處理的查詢請求的數量。
該指標僅Hologres V3.0及以上版本支援顯示。
進入查詢隊列的QPS(countS)
指執行個體中每秒提交至系統處理隊列中的查詢請求數量,可以用來衡量系統的負載情況以及查詢請求的頻率。
該指標僅Hologres V3.0及以上版本支援顯示。
查詢隊列中完成排隊開始啟動並執行QPS(countS)
指每秒鐘從等待狀態轉為執行狀態的查詢請求數量。
該指標僅Hologres V3.0及以上版本支援顯示。
查詢隊列開始啟動並執行查詢中,每個狀態的QPS(countS)
指查詢隊列中各個狀態的QPS。狀態包括以下幾種:
kReadyToRun(獲得查詢資格,開始運行)
kQueueTimeout(排隊逾時無法運行導致報錯)
kCanceled(被 Cancel 導致報錯)
kExceedConcurrencyLimit(超過限制無法運行導致報錯)
該指標僅Hologres V3.0及以上版本支援顯示。
查詢隊列的平均排隊時間長度(milliseconds)
指所有查詢請求從進入隊列到開始被處理這段時間的平均值(不包括實際執行查詢所需的時間),單位為毫秒。
該指標僅Hologres V3.0及以上版本支援顯示。
IO
I/O吞吐代表執行個體的I/O輸送量,描述執行個體的讀寫資料量,反映執行個體訪問磁碟時讀寫的繁忙度。您可以從I/O層面瞭解執行個體的壓力情況和負載變化,及時診斷問題。其中1 GiB=1024 MiB=1024 * 1024 KiB
。
標準IO讀吞吐(byte/s)
代表Query讀取標準儲存資料時的I/O吞吐。
標準IO寫吞吐(byte/s)
代表Query寫入標準儲存資料時的I/O吞吐。
低頻IO讀吞吐(byte/s)
代表Query讀取低頻儲存資料時的I/O吞吐。
低頻IO寫吞吐(byte/s)
代表Query寫入低頻儲存資料時的I/O吞吐
Storage
執行個體儲存的資料佔用的邏輯磁碟大小,是所有DB儲存用量的總和。其中1 GiB=1024 MiB=1024*1024 KiB。Hologres儲存用量可以持續增加,沒有硬限制。
訂用帳戶付費模式下購買的執行個體儲存用量用完後,超出部分會自動轉為隨用隨付,不會影響系統穩定性與使用
建議超出儲存資源之後及時對儲存進行升級配置,或者及時清理無用的資料,避免造成不必要的更昂貴的儲存費用。節省的儲存資費,可以用來投入到計算資源當中。
可以通過pg_relation_size函數查看錶和DB的儲存大小,以及儲存明細。同時也可以使用Table Info對執行個體中的表進行精細化管理。
標準儲存已用容量(byte)
標準儲存已經使用的儲存容量,若超過購買的儲存容量,可以適當擴容儲存。
標準儲存使用率(%)
標準儲存已經使用的儲存使用率,若超過購買的儲存容量,可以適當擴容儲存。
低頻儲存已用容量(byte)
低頻儲存已經使用的儲存容量,若超過購買的儲存容量,可以適當擴容儲存。
低頻儲存使用率(%)
低頻儲存已經使用的儲存使用率,若超過購買的儲存容量,可以適當擴容儲存。
Framework
FE replay延遲(milliseconds)
Hologres為分布式系統,在接入層有多個Frontend(FE)負責SQL的解析、分發、路由。對於DDL,Hologres的原理是先在一個FE執行,然後其餘FE節點replay。其中:
FE replay需要一定的時間,一般來說,Relay延遲在毫秒級、秒級都為正常情況。
當某個FE replay的延遲超過分鐘級時,可能是由於DDL太多,replay不及時;若是延遲一直增加,可能是Query卡住了,可以通過hg_stat_activity排查耗時較高的Query,並及時Kill。
該指標僅Hologres V2.2及以上版本支援。
Shard多副本同步延遲(milliseconds)
Shard多副本延遲是指執行個體開啟了Replication後,主從Shard之間的副本資料同步延遲。
通常Shard多副本延遲為毫秒級。
當有大量資料寫入、更新或頻繁執行DDL操作時,可能會導致同步延遲。
主從同步延遲(milliseconds)
主從執行個體同步延遲表示從執行個體讀取主執行個體資料時的延遲(毫秒),其中:
僅從執行個體顯示該指標,主執行個體預設不顯示。
只有在從執行個體綁定了主執行個體之後,該指標才會顯示資料(0ms),當主執行個體有資料寫入時,從執行個體的同步延遲會出現資料波動。
通常情況下,主從執行個體的同步延遲為毫秒級,當執行個體偶爾出現延遲抖動時,可能原因為主執行個體在做DDL等中繼資料修改的操作,可忽略。若長期延遲較大(大於秒),可能原因為執行個體水位較高,資源不足,您可以結合CPU、記憶體等水位情況綜合評估,並適當擴容以減少延遲。
執行個體重啟或者升級期間,同步延遲可能增加到分鐘層級,並會自動回復。
執行個體間檔案同步延遲(milliseconds)
指異地容災執行個體間的檔案同步延遲,僅在Follower執行個體(唯讀從執行個體)上展示該指標。
Auto Analyze
每個DB統計資訊缺失的表個數(countS)
代表每個DB中,統計資訊缺失的表的個數。
該指標僅Hologres V2.2及以上版本支援顯示。
對於Hologres V2.0及以上版本的執行個體,會預設開啟新版本Auto Analyze機制,當表剛建立或者有大量資料寫入或更新時,Auto Analyze可能未及時更新統計資料,可以先暫時觀測一段時間。
如果某個DB長期(超過數小時或數天)有缺失統計資訊的表,可能是因為未到達Auto Analyze的閾值,可以通過HG_STATS_MISSING視圖查看哪些表缺失統計資訊,並對錶手動執行Analyze以更新統計資料。
如果某個DB長期(超過數小時或數天)有缺失統計資訊的表,可能是因為未達到Auto Analyze的閾值,可以查看錶的統計資訊,並手動對錶執行Analyze。詳情請參見ANALYZE和AUTO ANALYZE。
Serverless Computing
正在啟動並執行Serverless Computing的查詢中,最長的時間長度(milliseconds)
Hologres支援Serverless Computing,可以將指定的Query運行在Serverless Computing資源集區中,隔離本執行個體以及任務,確保Query快速運行。
該指標僅Hologres V2.1及以上版本支援顯示。
該指標反映了Query在Serverless Computing的運行時間長度,預設展示已耗用時間最長的Query的時間長度,同時結合hg_stat_activity定位Query在Serverless的運行情況。
執行個體Serverless Computing Query排隊數量(count)
指執行個體中的Query在Serverless Computing資源集區中的排隊數量。
該指標僅Hologres V2.2及以上版本支援顯示。
執行個體Serverless Computing資源Quota使用率(%)
指給定時間內,執行個體實際使用的Serverless Computing資源量與可申請的最大資源量之間的比率。
該指標僅Hologres V2.2及以上版本支援顯示。
Binlog
每秒消費Binlog的條數或位元組數
Hologres支援訂閱Hologres Binlog功能,通過Binlog可以實現資料的即時分層,加速資料流轉。
每秒消費Binlog的條數(countS)
指每秒鐘消費Binlog的條數。該指標僅Hologres V2.2及以上版本支援顯示。
每秒消費Binlog的位元組數(byte/s)
指每秒鐘消費Binlog的位元組數。位元組數的增加可能是由於存在較大的欄位或資料量增加所致。該指標僅Hologres V2.2及以上版本支援顯示。
wal sender的使用數和使用率
同普通串連類似,在使用JDBC進行Binlog的消費時,所消費的每張表的每個Shard都會使用1個Walsender串連,Walsender串連與普通串連獨立,互不影響。Walsenders數有預設上限。
每個FE的wal sender的使用數(個)
指每個FE節點使用的Walsender數。
wal sender使用率最高的FE的wal sender使用率(%)
指使用Walsender數最大的FE的使用率。
結合上述兩個指標,可以判斷當前執行個體中Walsender的使用方式,若Walsender到達上限,可以通過JDBC消費Hologres Binlog排查並處理。
Computing Resource
Warehouse_timed_elastic_cores(Count)
Hologres計算群組執行個體支援分時彈性功能,詳情請參見計算群組分時彈性(Beta)。該指標表示執行個體通過分時彈性彈出的Core數。
Gateway
Gateway的CPU使用率(%)
Gateway的CPU使用率指執行個體內每個Gateway的CPU使用率。
該指標僅Hologres V2.0及以上版本支援顯示。
Gateway採用輪詢方式轉寄流量,因此即使沒有新串連請求,也會產生CPU消耗。
自Hologres V2.2.22版本起,Gateway預設啟動了更多背景工作執行緒,以增強建立串連的處理能力,同時CPU消耗率也相應提高。
Gateway的記憶體使用量率(%)
Gateway的記憶體使用量率指執行個體內每個Gateway的記憶體使用量率。
該指標僅Hologres V2.0及以上版本支援顯示。
Gateway的每秒新串連請求數(countS)
指系統在一秒鐘內能夠接受並成功建立的新串連的最大數量。
該指標僅Hologres V2.1.12及以上版本支援顯示。
單個Gateway處理建立串連的峰值能力約為100次/秒。
如果新串連請求數長期接近
100 * Gateway個數
,則說明Gateway成為了系統處理新串連請求的瓶頸,需要為應用設定合理的串連池機制,或擴容增加Gateway的個數。
Gateway的入口流量速率(B/s)
指每秒鐘通過Gateway進入系統的資料量。
該指標僅Hologres V2.1及以上版本支援顯示。
如果Gateway入口流量速率長期接近
200MiB/s * Gateway個數
,則說明Gateway網路處理能力成為了系統瓶頸,需要擴容增加Gateway個數。
Gateway的出口流量速率(B/s)
指每秒鐘通過Gateway發送至外部系統的資料量。
該指標僅Hologres V2.1及以上版本支援顯示。
如果Gateway出口流量速率長期接近
200MiB/s * Gateway個數
,則說明Gateway網路處理能力成為了系統瓶頸,需要擴容增加Gateway個數。
常見監控指標問題
監控指標常見問題匯總了使用監控指標中的常見問題,可以協助業務快速診斷、定位問題,並提供對應的解決辦法,提升自營運能力。
監控指標警示
您可以通過CloudMonitor對監控指標設定警示,以便及時發現異常,並排查處理,降低業務影響。詳情請參見CloudMonitor。