Query Profile記錄了查詢中涉及的所有工作節點的執行資訊。通過Query Profile,您可以進行可視化的分析來快速識別影響StarRocks執行個體查詢效能的瓶頸。
啟用Query Profile
如果您當前的執行個體未啟用Query Profile功能,則可以通過將變數enable_profile
設定為true
以啟用Query Profile。
SET enable_profile = true;
僅核心版本為2.5.13及以上版本(2.x系列)或者核心版本為3.1.5及以上版本(3.x系列)時,您可以設定全域開啟Profile功能,不會對查詢效能產生影響。
如果您的核心版本低於上述提到的版本,強烈建議您先升級到上述版本再開啟Query Profile功能,以免對查詢效能產生影響。
Query Profile結構
Query Profile由以下五部分組成:
Fragment:執行樹。一個查詢由一個或多個Fragment組成。
FragmentInstance:每個Fragment可以有多個執行個體,每個執行個體稱為FragmentInstance,分別由不同的計算節點來執行。
Pipeline:執行鏈。一個Pipeline由一組首尾相接的Operator 構成。一個FragmentInstance會被拆分成多個 Pipeline。
PipelineDriver:一個Pipeline可以有多個執行個體,每個執行個體稱為PipelineDriver,以充分利用多個計算核心。
Operator:運算元。一個 PipelineDriver由多個Operator組成。
可視化Query Profile
StarRocks Manager可視化了Query Profile,整個Profile對應一棵樹形結構,樹的節點代表彙總後的Operator。單擊Operator,可以在頁面右側的選項卡中查看其詳細資料;未選中Operator時,右側展示Query的概覽資訊。
執行概覽
執行概覽頁面為您展示一些Summary指標,包含執行時間(Execution time)、I/O效能及網路傳輸資料量等關鍵資訊。
Execution time
指標
說明
IO
所有SCAN節點IO耗時之和。
LocalDiskReadIOTime
從本機快取讀取資料產生的I/O耗時。該指標僅適用於存算分離執行個體。
RemoteReadIOTime
從遠端OSS讀取資料產生的I/O耗時。該指標僅適用於存算分離執行個體。
IoSeekTime
IO Seek定址過程產生的總耗時。該指標僅適用於存算分離執行個體。
Processing
Operator節點用於記錄其執行計算操作的總耗時。
ExecutionWallTime
Query執行總耗時。
IO
指標
說明
RawRowsRead
所有SCAN節點實際掃描到的記錄行數之和。
DiskReadBytes
所有SCAN執行節點讀取的壓縮後資料總量之和。
LocalDiskReadBytes
所有Connector Scan執行節點從本機快取讀取的壓縮資料大小之和。該指標僅適用於存算分離執行個體。
RemoteReadBytes
所有Connector Scan執行節點從OSSObject Storage Service讀取的壓縮資料大小之和。該指標僅適用於存算分離執行個體。
ResultRows
所有SCAN執行節點輸出記錄條數總和。
ResultBytes
所有SCAN執行節點讀取的資料總量之和。
Network
指標
說明
Bytes sent over network
所有Exchange執行節點傳輸的位元組總數,對應BytesSent指標。
Operator
單擊Operator,可以在頁面右側查看以下內容:
節點頁簽:展示該Operator的核心指標。
節點詳情頁簽:展示該Operator的所有指標。
Pipeline頁簽:展示該Operator所屬Pipeline指標。該頁簽的指標僅與調度相關,您無需過多關注。
Operator花費的時間比例越大,其對應顏色就越深(支援對執行耗時排名前三的節點標註顏色)。您可以藉此輕鬆確認查詢的瓶頸。
通過滑鼠滾動,或單擊放大和縮小按鈕,可以放大和縮小Profile樹。
重要指標
Query層級
Summary指標
指標
說明
Total
查詢消耗的總時間,包括Planning、Executing和Profiling階段的耗時。
QueryCpuCost
查詢累積CPU使用時間。所有並發進程累加,因此該指標會大於實際的執行時間。
QueryMemCost
查詢總記憶體消耗。
Variables
查詢相關的變數。
Pipeline層級
指標
說明
ActiveTime
Driver執行時間。
DriverTotalTime
Driver消耗的總時間。
PendingTime
Driver因為輸入或者前置條件不滿足等待的時間。
Operator層級
Operator通用指標和Chunk Accumulate
指標
說明
OperatorTotalTime
Operator消耗的總時間。
PushRowNum
Operator累積輸出行數。
PullRowNum
Operator累積輸入行數。
PullChunkNum
Operator累積輸入Chunk數。
PushChunkNum
Operator累積輸出Chunk數。
PeakMemoryUsage
Operator最大記憶體使用量量。
OLAP Scan Operator
指標
說明
Table
表名稱。
ScanTime
Scan累計時間。Scan操作在非同步I/O線程池中完成。
TabletCount
Tablet數量。
PushdownPredicates
下推的謂詞數量。
BytesRead
讀取資料的大小。
CompressedBytesRead
讀取壓縮資料的大小。
IOTime
累計I/O時間。
BitmapIndexFilterRows
Bitmap索引過濾的資料行數。
BloomFilterFilterRows
Bloomfilter過濾的資料行數。
SegmentRuntimeZoneMapFilterRows
Runtime Zone Map過濾的資料行數。
SegmentZoneMapFilterRows
Zone Map過濾的資料行數。
ShortKeyFilterRows
Short Key過濾的資料行數。
ZoneMapIndexFilterRows
Zone Map索引過濾的資料行數。
Connector Scan Operator
以下指標是在OLAP Scan Operator的基礎上增加的,適用於存算分離執行個體。
指標
說明
CompressedBytesReadLocalDisk
從計算節點的本機快取讀取的經過壓縮後的資料量。
CompressedBytesReadRemote
從OSS讀取的經過壓縮的資料總量。
IOTimeLocalDisk
從本機快取讀取資料時所產生的I/O操作耗時。
IOTimeRemote
從OSS讀取資料時所產生的I/O操作耗時。
Exchange Operator
Sink
指標
說明
PartType
資料分布模式,包括UNPARTITIONED、RANDOM、HASH_PARTITIONED和BUCKET_SHUFFLE_HASH_PARTITIONED。
BytesSent
發送的資料大小。
OverallThroughput
吞吐速率。
NetworkTime
資料包傳輸時間(不包括接收後處理時間)。
WaitTime
由於發送端隊列滿而導致的等待時間。
NetworkBandwidth
網路頻寬。
Source
指標
說明
SenderWaitLockTime
等鎖時間。
BytesReceived
接收的資料大小。
DecompressChunkTime
解壓時間。
DeserializeChunkTime
還原序列化時間。
SenderTotalTime
發送總時間。
Aggregate Operator
指標
說明
GroupingKeys
GROUP BY列。
AggregateFunctions
彙總函式。
AggComputeTime
彙總函式計算耗時。
ExprComputeTime
運算式計算耗時。
HashTableSize
Hash Table大小。
Join Operator
Probe
指標
說明
DistributionMode
資料分布模式。
JoinType
Join類型。
OtherJoinConjunctEvaluateTime
其他JoinConjunct耗時。
ProbeConjunctEvaluateTime
Probe Conjunct耗時。
SearchHashTableTime
查詢Hash Table耗時。
WhereConjunctEvaluateTime
Where Conjunct耗時。
Build
指標
說明
JoinPredicates
Join謂詞。
JoinType
Join類型。
BuildBuckets
Hash Table的Bucket數量。
BuildHashTableTime
構建Hash Table耗時。
RuntimeFilterBuildTime
Runtime Filter構建時間。
RuntimeFilterNum
Runtime Filter個數。
DistributionMode
資料分布模式。
Window Function Operator
指標
說明
ComputeTime
視窗Function Compute耗時。
PartitionKeys
分區列。
AggregateFunctions
彙總函式。
Sort Operator
指標
說明
SortKeys
排序鍵。
SortType
查詢結果排序方式:全排序或者排序Top N個結果。
MergingTime
資料合併耗時。
SortingTime
資料排序耗時。
TableFunction Operator
指標
說明
TableFunctionExecTime
Table Function計算耗時。
TableFunctionExecCount
Table Function執行次數。
Project Operator
指標
說明
ExprComputeTime
運算式計算耗時。
CommonSubExprComputeTime
公用子運算式計算耗時。
LocalExchange Operator
指標
說明
Type
Local Exchange類型,包括:Passthrough、Partition以及Broadcast。
ShuffleNum
Shuffle數量。該指標僅當Type為Partition時有效。
相關文檔
如果您想有效地查看和解讀Query Profile以最佳化StarRocks查詢效能,詳情請參見Profile效能診斷及最佳化案例。