db2pd是從DB2版本8.2開始提供的一個新工具,可以用來檢測DB2的運行狀況。對于問題定位來講,操作系統以及DB2的配置信息非常重要。db2pd不僅能夠監控DB2系統運行的動態信息,而且可以方便地獲取操作系統和DB2的配置信息。注意:您必須使用DB2的實例用戶來運行db2pd。 下面我們介紹幾個用來收集配置信息的選項:
1、 收集操作系統信息,使用-osinfo選項我們可以方便的獲取操作系統的一些配置信息和運行信息:
/home/db2inst1$ db2pd -osinfo
Operating System Information:
OSName: AIX
NodeName: p615
Version: 5
Release: 2
Machine: 005615ED4C00
CPU Information:
TotalCPU OnlineCPU ConfigCPU Speed(MHz) HMTDegree
1 1 1 1200 1
Physical Memory and Swap (Megabytes):
TotalMem FreeMem AvailMem TotalSwap FreeSwap
1024 18 n/a 3072 2307
Virtual Memory (Megabytes):
Total Reserved Available Free
4096 n/a n/a 2325
Message Queue Information:
MsgSeg MsgMax MsgMap MsgMni MsgTql MsgMnb MsgSsz
n/a 4194304 n/a n/a n/a 4194304 n/a
Shared Memory Information:
ShmMax ShmMin ShmIds ShmSeg
68719476736 1 131072 0
Semaphore Information:
SemMap SemMni SemMns SemMnu SemMsl SemOpm SemUme
SemUsz SemVmx SemAem
n/a 131072 n/a n/a 65535 1024 n/a
n/a 32767 16384
CPU Load Information:
Short Medium Long
0.000000 0.003067 0.011612
從上面收集的信息我們可以看到操作系統的版本、CPU配置、物理內存、虛擬內存、消息隊列、共享內存、信號燈等信息。其中上面列出的消息隊列、共享內存、信號燈都是與該DB2實例相關的信息。
2、收集數據庫管理器配置參數,使用-dbmcfg選項:
/home/db2inst1$ db2pd -dbmcfg
Database Partition 0 -- Active -- Up 0 days 01:29:15
Database Manager Configuration Settings:
Description Memory Value Disk Value
RELEASE 0xa00 0xa00
CPUSPEED 5.825579e-07 5.825579e-07
COMM_BANDWIDTH 1.000000e+02 1.000000e+02
NUMDB 8 8
DATALINKS NO NO
FEDERATED YES YES
......
從中我們可以看到數據庫管理器的運行時間,所有的配置參數,其中Memory Value為當前值,Disk Value為下一次啟動DB2實例生效的值。
3、 數據庫配置參數,使用-dbcfg可以獲得數據庫配置參數,配合-db <dbname>選項使用可以獲取不同數據庫的配置參數,注意,使用該命令收集數據庫配置參數需要該數據庫處于活動狀態。如:
/home/db2inst1$ db2pd -db sample -dbcfg
Database Partition 0 -- Database SAMPLE -- Active -- Up 0 days 00:00:03
Database Configuration Settings:
Description Memory Value Disk Value
DB configuration release level 0xa00 0xa00
Database release level 0xa00 0xa00
Database territory US US
Database code page 819 819
Database code set ISO8859-1 ISO8859-1
Database country/region code 1 1
Database collating sequence UNIQUE UNIQUE
ALT_COLLATE NON_UNIQUE NON_UNIQUE
DYN_QUERY_MGMT DISABLE DISABLE
......
同樣Memory Value為當前值,Disk Value為下一次啟動該數據庫時生效的值。
4、緩沖池信息,緩沖池設置對于數據庫的性能影響非常大??梢允褂茫璪ufferpools 選項獲取一個數據庫的緩沖池信息。該選項同樣需要-db <dbname>配合一起使用,如:
/home/db2inst1$ db2pd -db sample -bufferpools
Database Partition 0 -- Database SAMPLE -- Active -- Up 0 days 00:04:53
BufferPools:
First Active Pool ID 1
Max Bufferpool ID 1
Max Bufferpool ID on Disk 1
Num Bufferpools 5
Address Id Name PageSz PA-NumPgs BA-NumPgs
BlkSize ES NumTbsp PgsLeft CurrentSz PostAlter SuspndTSCt
0x0780000020332F20 1 IBMDEFAULTBP 4096 1000 0
0 N 6 0 1000 1000 0
0x07800000203320A0 4096 IBMHIDDENBP4K 4096 16 0
0 N 0 0 16 16 0
0x0780000020332440 4097 IBMHIDDENBP8K 8192 16 0
0 N 0 0 16 16 0
0x07800000203327E0 4098 IBMHIDDENBP16K 16384 16 0
0 N 0 0 16 16 0
0x0780000020332B80 4099 IBMHIDDENBP32K 32768 16 0
0 N 0 0 16 16 0
注意:其中IBMHIDDENBP4K、IBMHIDDENBP8K、IBMHIDDENBP16K、IBMHIDDENBP32K為DB2默認創建的隱藏緩沖池,只有在正常的數據庫緩沖池因為各種原因無法生效時使用,如果在db2diag.log中看到使用這些緩沖池的消息,請檢查緩沖池的設置。因為這些緩沖池都非常小,如果使用到這些緩沖池的話,性能一定會非常差。
5、表空間信息,可以使用-tablespaces選項獲得表空間信息,同樣需要配合-db <dbname>選項使用:
/home/db2inst1$ db2pd -db sample -tablespaces
Database Partition 0 -- Database SAMPLE -- Active -- Up 0 days 00:09:16
Tablespaces:
Address Id Type Content PageSize ExtentSize Auto Prefetch BufI
D BufIDDisk State TotPages UsablePgs UsedPgs PndFreePgs FreePgs
HWM MinRecTime NQuiescers NumCntrs MaxStripe Name
0x078000002033E6E0 0 SMS Any 4096 32 Yes 32 1
1 0x00000000 0 0 0 0 0
0 0 0 1 0 SYSCATSPACE
0x078000002033EE60 1 SMS SysTmp 4096 32 Yes 32 1
1 0x00000000 0 0 0 0 0
0 0 0 1 0 TEMPSPACE1
0x078000002033F5E0 2 SMS Any 4096 32 Yes 32 1
1 0x00000000 0 0 0 0 0
0 0 0 1 0 USERSPACE1
0x078000002098A8C0 3 DMS Any 4096 32 Yes 32 1
1 0x00000000 7680 7648 3616 0 4032
3616 0 0 1 0 USERTEST1
0x078000002098AEE0 4 DMS Any 4096 32 Yes 32 1
1 0x00000000 7680 7648 160 0 7488
160 0 0 1 0 USERIND1
0x078000002098B500 5 SMS Any 4096 32 Yes 32 1
1 0x00000000 0 0 0 0 0
0 0 0 1 0 SYSTOOLSPACE
Containers:
Address TspId ContainNum Type TotalPages UseablePgs StripeSet Con
tainer
0x078000002033ED00 0 0 Path 0 0 0 /ho
me/db2inst1/db2inst1/NODE0000/SQL00002/SQLT0000.0
0x078000002033F480 1 0 Path 0 0 0 /ho
me/db2inst1/db2inst1/NODE0000/SQL00002/SQLT0001.0
0x078000002033FC00 2 0 Path 0 0 0 /ho
me/db2inst1/db2inst1/NODE0000/SQL00002/SQLT0002.0
0x078000002033FDC0 3 0 File 7680 7648 0 /ho
me/db2inst1/chris/usertest1
0x0780000020358080 4 0 File 7680 7648 0 /ho
me/db2inst1/chris/userind1
0x078000002098BB20 5 0 Path 0 0 0 /ho
me/db2inst1/db2inst1/NODE0000/SQL00002/SYSTOOLSPACE
該命令可以顯示出表空間的信息和容器的信息。
db2pd是一個非常強大的監控工具。這只是db2pd很小的一部分功能,關于db2pd的其他功能請參閱命令參考:
http://publib.boulder.ibm.com/infocenter
/db2help/index.jsp?topic=/com.ibm.db2.udb.doc/core/r0011729.htm