当前位置: 代码迷 >> 综合 >> oceanbase 性能监控01
  详细解决方案

oceanbase 性能监控01

热度:3   发布时间:2023-12-18 05:41:48.0

审计监控

(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