oceanbase 性能監控01

審計監控

(g)v$sql_audit是基於虛擬表__all_virtual_sql_audit的視圖, 該虛擬表對應的數據存放在一個可配置的內存空間中,能夠記錄並顯示每一次SQL請求的來源、執行狀態及統計信息,由於存放這些記錄的內存是有限的,因此到達一定內存使用量,會觸發淘汰。

sql_audit相關設置

  • 設置sql_audit使用開關
alter system set enable_sql_audit = true/false;
  • 設置sql_audit內存上限
alter system set sql_audit_memory_limit = '3G';

3G是默認內存上限,可設置範圍爲[64M,+∞]

  • 機制啓動間隔:
    後臺任務每隔1s會檢測是否需要淘汰。

  • 觸發淘汰的標準:
    1)當內存或記錄數達到淘汰上限時觸發淘汰;
    2)sql_audit內存最大可使用上限:
    avail_mem_limit = min(OBServer可使用內存*10%, sql_audit_memory_limit);
    3)淘汰內存上限:
    當avail_mem_limit在[64M, 100M]時, 內存使用達到avail_mem_limit - 20M時觸發淘汰;
    當avail_mem_limit在[100M, 5G]時, 內存使用達到availmem_limit*0.8時觸發淘汰;
    當avail_mem_limit在[5G, +∞]時, 內存使用達到availmem_limit - 1G時觸發淘汰;
    4)淘汰記錄數上限:
    當sql_audidt記錄數超過900w條記錄時,觸發淘汰;

  • 停止淘汰的標準:
    1)如果是達到內存上限觸發淘汰則:
    當avail_mem_limit在[64M, 100M]時, 內存使用淘汰到avail_mem_limit-40M時停止淘汰;
    當avail_mem_limit在[100M, 5G]時, 內存使用淘汰到availmem_limit*0.6時停止淘汰;
    當avail_mem_limit在[5G, +∞]時, 內存使用淘汰到availmem_limit-2G時停止淘汰;                 
    2)如果是達到記錄數上限觸發的淘汰則淘汰到800w行記錄時停止淘汰;

sql_audit字段解釋

字段名稱

類型

描述

SVR_IP

varchar(32)

ip地址

SVR_PORT

bigint(20)

端口號

REQUEST_ID

bigint(20)

請求的id號

TRACE_ID

varchar(128)

這條語句的trace_id

CLIENT_IP

varchar(32)

發送請求的client ip

CLIENT_PORT

bigint(20)

發送請求的client port

TENANT_ID

bigint(20)

發送請求的租戶id

TENANT_NAME

varchar(64)

發送請求的租戶 名稱

USER_ID

bigint(20)

發送請求的用戶id

USER_NAME

varchar(64)

發送請求的用戶名稱

SQL_ID

varchar(32)

這條SQL的id

QUERY_SQL

varchar(32768)

實際的SQL語句

PLAN_ID

bigint(20)

執行計劃id

AFFECTED_ROWS

bigint(20)

影響行數

RETURN_ROWS

bigint(20)

返回行數

PARTITION_CNT

bigint(20)

該請求涉及的分區數

RET_CODE

bigint(20)

執行結果返回碼

EVENT

varchar(64)

最長等待事件名稱

P1TEXT

varchar(64)

等待事件參數1

P1

bigint(20) unsigned

等待事件參數1的值

P2TEXT

varchar(64)

等待事件參數2

P2

bigint(20) unsigned

等待事件參數2的值

P3TEXT

varchar(64)

等待事件參數3

P3

bigint(20) unsigned

等待事件參數3的值

LEVEL

bigint(20)

等待事件的level級別

WAIT_CLASS_ID

bigint(20)

等待事件所屬的class id

WAIT_CLASS#

bigint(20)

等待事件所屬的class 的下標

WAIT_CLASS

varchar(64)

等待事件所屬的class 名稱

STATE

varchar(19)

等待事件的狀態

WAIT_TIME_MICRO

bigint(20)

該等待事件所等待的時間(微秒)

TOTAL_WAIT_TIME_MICRO

bigint(20)

執行過程所有等待的總時間(微秒)

TOTAL_WAITS

bigint(20)

執行過程總等待的次數

RPC_COUNT

bigint(20)

發送rpc個數

PLAN_TYPE

bigint(20)

執行計劃類型,local remote distribute

IS_INNER_SQL

tinyint(4)

是否內部sql請求

IS_EXECUTOR_RPC

tinyint(4)

當前請求是否rpc請求

IS_HIT_PLAN

tinyint(4)

是否命中plan_cache

REQUEST_TIME

bigint(20)

開始執行時間點

ELAPSED_TIME

bigint(20)

接收到請求到執行結束消耗 總時間

NET_TIME

bigint(20)

發送rpc到接收到請求時間

NET_WAIT_TIME

bigint(20)

接收到請求到進入隊列時間

QUEUE_TIME

bigint(20)

請求在隊列等待事件

DECODE_TIME

bigint(20)

出隊列後decode時間

GET_PLAN_TIME

bigint(20)

開始process到獲得plan時間

EXECUTE_TIME

bigint(20)

plan執行消耗時間

APPLICATION_WAIT_TIME

bigint(20) unsigned

所有application類事件的總時間

CONCURRENCY_WAIT_TIME

bigint(20) unsigned

所有concurrency類事件的總時間

USER_IO_WAIT_TIME

bigint(20) unsigned

所有user_io類事件的總時間

SCHEDULE_TIME

bigint(20) unsigned

所有schedule類事件的時間

ROW_CACHE_HIT

bigint(20)

行緩存命中次數

BLOOM_FILTER_CACHE_HIT

bigint(20)

bloom filter緩存命中次數

BLOCK_CACHE_HIT

bigint(20)

塊緩存命中次數

BLOCK_INDEX_CACHE_HIT

bigint(20)

塊索引緩存命中次數

DISK_READS

bigint(20)

物理讀次數

EXECUTION_ID

bigint(20)

執行ID

SESSION_ID

bigint(20)

session id

RETRY_CNT

bigint(20)

重試次數

TABLE_SCAN

tinyint(4)

判斷該請求是否含全表掃描

CONSISTENCY_LEVEL

bigint(20)

一致性級別

MEMSTORE_READ_ROW_COUNT

bigint(20)

MEMSTORE中的讀行數

SSSTORE_READ_ROW_COUNT'

bigint(20)

SSSTORE中國年讀的行數

REQUEST_MEMORY_USED

bigint(20)

該請求消耗的內存

 

 

 

參考ob官方文檔

https://oceanbase.alipay.com/docs

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章