DB2 Monitor

时间段监控
临时开启:(IBM 建议使用临时开启,并开启如下五个参数)
db2 get monitor switches
db2 update monitor switches using BUFFERPOOL on;
db2 update monitor switches using LOCK on;
db2 update monitor switches using SORT on;
db2 update monitor switches using STATEMENT on;
db2 update monitor switches using TIMESTAMP on;

截取报告:
db2 get snapshot for dynamic sql on <dbname>  > /tmp/dynamic_1.out
db2 get snapshot for bufferpools on <dbname> > /tmp/buff_1.out
db2 get snapshot for locks on <dbname> > /tmp/locks_1.out
db2 get snapshot for dbm > /tmp/dbm_1.out
db2 get snapshot for db on <dbname> > /tmp/db_1.out
db2 get snapshot for tables on <dbname> /tmp/table_1.out

清空数据:
db2 reset monitor all

分析:
 1)BUFFERPOOL    >db2 connect to BANK    >db2 get snapshot for BUFFERPOOLS on BANK  ...  Buffer pool data logical reads = 16359  Buffer pool data physical reads = 209  Buffer pool index logical reads = 90  Buffer pool index physical reads = 52  ...  计算buffer pool hit ratio =      (1- ((Buffer pool data physical reads + Buffer pool index physical reads) /      (Buffer pool data logical reads + Buffer pool index logical reads))) * 100%  判断是否需要加大buffer pool
 >db2 get snapshot for db on BANK  ..  已分配的专用排序堆总数          = 0  已分配的共享排序堆总数                  = 0  共享排序堆高水位标记                    = 0  总计排序                        = 0  总计排序时间(毫秒)            = 未收集  排序溢出                        = 0  活动排序数                      = 0  ..  计算Sort overflow ratio = (Sort overflows / Total sorts) * 100%  判断是否需要加大sort heap (SORTHEAP)
 3)Log buffer  >db2 get snapshot for db on BANK  ..  已读取的日志页                  = 0  日志读取时间(秒.纳秒)                = 0.000000004  已写入的日志页                  = 939  日志写入时间(秒.纳秒)                = 33.000000004  ..  判断是否需要加大log buffer (LOGBUFSZ)
  数据缓冲区命中率(Data Bufferpool Hit Ratio):> 95%  索引缓冲区命中率(Index Bufferpool Hit Ratio):> 98%  平均读写时间(Read / Write Avarage Times):< 5 ms  高速缓存区命中率(Package Cache Hit Ratio):> 98%  编目缓冲区命中率(Catalog Cache Hit Ratio):> 98%  锁升级及死锁(Lock Escalations and Deadlocks):仅有少量的锁升级或死锁  日志缓冲区(Log Buffer Hit Ratio):> 98%  排序溢出次数 / 排序次数 (Sort Overflow / Total Sort):< 1%
实时监控:db2top -d <dbname>
d: database
D: dynamic sql
U: locks
b: bufferpools
m: memory
s: statements

查看缓冲池命中率:select substr(bp_name,1,12) total_hit_ratio_percent,data_hit_ratio_percent,index_hit_ratio_percent from sysibmadm.bp_hitratio

查看执行成本最高的SQL语句:select agent_id, rows_selected, rows_read from sysibmadm.application_performance

查看运行时间最长的SQL语句:select elapsed_time_min,appl_status, agent_id from sysibmadm.long_running_sql order by elapsed_time_min desc fetch first 5 rows only

查看准备和预编译时间最长的SQL语句:select num_executions,average_execution_time_s,prep_time_percent from sysibmadm.query_prep_cost order by num_executions desc

查看执行次数最多的SQL语句:select * from sysibmadm.TOP_DYNAMIC_SQL order by num_executions desc fetch first 5 rows only

查看排序次数最多的SQL语句:select STMT_SORTS, SORTS_PER_EXECUTION, SUBSTR(STMT_TEXT,1,60) as STMT_TEXT from sysibmadm.top_dynamic_sql order by STMT_SORTS desc fetch first 5 rows only

查看引发锁等待语句:select agent_id, substr(STMT_TEXT,1,100) as statement, STMT_ELAPSED_TIME_MS from table(snapshot_statement('<dbname>', -1)) as B where agent_id in (select agent_id_holding_lk from table (snapshot_lockwait('<dbname>',-1)) as A order by LOCK_WAIT_START_TIME asc fetch first 20 rows only) order by STMT_ELAPSED_TIME_MS DESC

查看空间使用率:1. select TABLESPACE_NAME,TOTAL_PAGES,USED_PAGES,FREE_PAGES,rtrim(char(USED_PAGES*100/TOTAL_PAGES))||'%' as USED_RATE,rtrim(char(FREE_PAGES*100/TOTAL_PAGES))||'%' as Free_RATE from table (SNAPSHOT_TBS_CFG('COMMERCE', -1)) t
2. select substr(tbsp_name,1,18), tbsp_type,tbsp_free_size_kb,tbsp_utilization_percent from sysibmadm.tbsp_utilization

查看表大小:select tabname, npages from syscat.tables where tabname not like 'SYS%' and type='T'

类似ORACLE AWR工具:select application_handle,client_idle_wait_time,agent_wait_time,total_app_rqst_time,total_wait_time,total_cpu_time,app_rqsts_completed_total,lock_wait_time from table(mon_get_connection(cast(null as bigint),-2)) as t
将数据导入EXCEL制作成饼图


Comments

Popular posts from this blog

Nginx Proxy & Load Balance & LNMP

Snort+barnyard2+Snorby CentOS 6.5_64 Installation

ORACLE Error