当我们对db2内存使用清理进行监控检查的时候,经常需要知道db2当前的内存使用情况。通过参数instance_memory并不能准确的看到这些信息,因为instance_memory包括了mon_heap, audit_buf_sz and FCM, database shared memory segment (bufferpool, locklist, dbheap, pckcache, util_heap, catalogcache)这些内存池集合,而db2mtrk就可以指定数据库和实例级别查看实时的内存使用情况
所以在DB2中,db2mtrk工具就是一个查看当前内存使用情况的非常好的的工具。
db2mtrk的命令语法:(unix,linux,window平台之间可能有稍许差异)-r 参数选项是重复显示 interval是重复显示的时间间隔数 count是要重复显示的次数
如下使用示例结果输出:
[db2inst1@marven ~]$ db2 list active databases
Active Databases
Database name = SAMPLE
Applications connected currently = 0
Database path = /home/db2inst1/db2inst1/NODE0000/SQL00002/
Database name = ORACLE
Applications connected currently = 0
Database path = /home/db2inst1/db2inst1/NODE0000/SQL00004/
如上我的实例中存在两个激活的数据库,如下分别显示数据库的内存使用情况:
[db2inst1@marven ~]$ db2mtrk -i -d
Tracking Memory on: 2012/02/13 at 09:38:24
Memory for instance
other fcmbp monh
17.1M 832.0K 576.0K
Memory for database: SAMPLE
utilh pckcacheh other catcacheh bph (1) bph (S32K)
64.0K 256.0K 192.0K 192.0K 8.2M 832.0K
bph (S16K) bph (S8K) bph (S4K) shsorth lockh dbh
576.0K 448.0K 384.0K 0 16.8M 18.9M
apph (258) apph (257) apph (256) apph (255) apph (254) apph (253)
64.0K 64.0K 64.0K 192.0K 64.0K 64.0K
apph (252) appshrh
64.0K 320.0K
Memory for database: ORACLE
utilh pckcacheh other catcacheh bph (1) bph (S32K)
64.0K 256.0K 192.0K 192.0K 40.3M 832.0K
bph (S16K) bph (S8K) bph (S4K) shsorth lockh dbh
576.0K 448.0K 384.0K 128.0K 16.8M 18.9M
apph (267) apph (266) apph (265) apph (264) apph (263) apph (262)
64.0K 64.0K 64.0K 192.0K 64.0K 64.0K
apph (261) appshrh
64.0K 320.0K