自DB2 9.5之后,DB2提供了一个监控命令显示一个实例总共消耗的内存
$ db2pd -dbptnmem
Database Member 0 -- Active -- Up 21 days 05:18:08 -- Date 2016-12-28-16.45.54.432544
Database Member Memory Controller Statistics
Controller Automatic: Y
Memory Limit: 5154464 KB
Current usage: 2704576 KB
HWM usage: 2975552 KB
Cached memory: 429248 KB
Individual Memory Consumers:
Name Mem Used (KB) HWM Used (KB) Cached (KB)
========================================================
APPL-SAMPLE 160000 160000 155328
APPL-TXDB 31488 160000 17728
DBMS-db2inst1 116928 116928 7744
FMP_RESOURCES 22528 22528 0
PRIVATE 78912 100608 19456
DB-TXDB 1801536 1975808 181376
DB-SAMPLE 492288 492288 47616
LCL-p17694776 128 128 0
LCL-p22675550 128 128 0
LCL-p22675550 128 128 0
LCL-p22675550 128 128 0
LCL-p22675550 128 128 0
LCL-p22675550 128 128 0
LCL-p22675550 128 128 0
$
Controller Automatic: Y
这个表示实例内存是不是自动调整的
Memory Limit: 5154464 KB
这个表示DBM的参数INSTANCE_MEMORY设置的上限
$ db2 get dbm cfg | grep -i INSTANCE_MEMORY
Global instance memory (4KB) (INSTANCE_MEMORY) = AUTOMATIC(1288616)
$
很显然,1288616 x 4 = 5154464
Current usage: 2704576 KB
表示当前所分配的内存大小,并不是提交的内存。
HWM usage: 2975552 KB
表示该实例自从最近一次启动以来,使用过的最大的量
Cached memory: 429248 KB
是已经被分配的内存,但是当前并没有被使用到的部分,操作系统已经无法将改内存分配给别的进程,但是DB2中这部分内存空间可以用来分配给其他的内存池。
Cached部分是包含在Mem Used部分之内的。