db2的内存管理

Click here to load reader

Upload: fm2008

Post on 22-Nov-2014

1.375 views

Category:

Technology


8 download

DESCRIPTION

 

TRANSCRIPT

  • 1. DB2 ,,, DB2 , ,,.,?PS DB2 , , ,nic518 2006-12-31 12:45:01 DB2 32 64 DB2 DB2 32 64 64 32 DB2 AIX Sun HP Linux Windows DB2 / DB2 version 8DB2 1 DB2 1 - DB2

2. DB2 4 memory set 4 instance shared memorydatabase shared memoryapplication group shared memoryagent private memory 1 locklist sortheap DB2 db2startdb2stopdbm cfg instance_memory mon_heap_szAudit Buffer audit_buf_sz db2audit Fast Communication buffers fcm_num_buffersinstance_memory AUTOMATIC 3. DB2 FCM DB2 instance_memory instance_memory mon_heap_sz audit_buf_sz fcm_num_buffers instance_memory AUTOMATIC instance_memory AUTOMATICdb2 attach to instance_name instance_name db2 get dbm cfg show detail 42 MB 10313 * 4096 /Size of instance shared memory (4KB) (INSTANCE_MEMORY) = AUTOMATIC(10313)AUTOMATIC(10313)instance_memory DB2 db2mtrkdb2startdb2mtrk -i -vMemory for instanceFCMBP Heap is of size 17432576 bytesDatabase Monitor Heap is of size 180224 bytesOther Memory is of size 3686400 bytesTotal: 21299200 bytes 42 MB db2mtrk 21 MBdb2mtrk / SQL 2 2 - DB2 4. util_heap_sz 16 KB util_heap_sz DB2 8KB 8KB CREATE BUFFERPOOL EXTENDED STORAGE ESTORE I/OESTORE num_estore_segs estore_seg_sz ESTORE ESTORE ESTORE 4 4K 8K 16K 32K SELECT * FROM 5. SYSCAT.BUFFERPOOLS DB2 DB2 4 DB2 SQLSTATE 01626nic518 2006-12-31 12:52:06 sheapthres sheapthres_shrDB2 sheapthres db2diag.log "Not enough memory available for a (private) sort heap of size size of sortheap. Trying smallersize..." intra-partition parallelismconcentrator DB2 DB2 sheapthres_shr SQL0955(rc2) sheapthres_shr = ( + 4 + + + locklist + + ) + (estore * 100 ) + 10% intra_parallel = ( + 4 + + + locklist + + + sheapthres_shr) + (estore * 100 ) + 10% 6. SELECT * FROM SYSCAT.BUFFERPOOLS pckcachesz = maxappls * 8 catalogcache_sz = maxappls * 4 maxappls = AUTOMATIC maxappls AUTOMATIC DB2maxappls database_memory AUTOMATIC DB2 DB2 database_memory database_memory database_memory AUTOMATICdb2 connect to dbnameuser useridusing pwddb2 get db cfg for dbnameshow detail db2mtrk db2mtrk -i -d -v Windows -i UNIX -i Memory for database SAMPLE Backup/Restore/Util Heap is of size 16384 bytes Package Cache is of size 81920 bytes Catalog Cache Heap is of size 65536 bytes Buffer Pool Heap is of size 4341760 bytes Buffer Pool Heap is of size 655360 bytes Buffer Pool Heap is of size 393216 bytes Buffer Pool Heap is of size 262144 bytes Buffer Pool Heap is of size 196608 bytes Lock Manager Heap is of size 491520 bytes Database Heap is of size 3637248 bytes Other Memory is of size 16384 bytes Application Control Heap is of size 327680 bytes Application Group Shared Heap is of size 57344000 bytes Total: 67829760 bytes 7. multi-partitionedintra-parallelnon-partitioned max_connections max_coordagents GET DBM CFG / DB2 appgroup_mem_sz appgroup_mem_sz / app_ctl_heap_sz 3 - DB2 8. 1 (4KB) (APPGROUP_MEM_SZ) = 40000 (4KB) (APP_CTL_HEAP_SZ) = 512 (GROUPHEAP_RATIO) = 70 40000 * 4K/ = 160 MB 40000 * 70% = 28000 4K = 114MB 9. 40000/512 = 78 (100-70)% * 512 = 153 4K = 0.6MB app_ctrl_heap_sz 3 ((100 - groupheap_ratio)% * app_ctrl_heap_sz)groupheap_ratio 2 200 1 78 200/78 = 3 200 RAM SQL10003N DB2 SQL DB2 maxappls maxagents Application Heap applheapszSort Heap sortheapStatement Heap stmtheapStatistics Heap stat_heap_szQuery Heap query_heap_szJava Interpreter Heap java_heap_szAgent Stack Size agent_stack_sz Windows DB2 dbm cfg num_poolagents 0 num_poolagents 10. DB2DB2MEMMAXFREE 8 388 608 8MB 100 800MB RAM RAM 1 DB2 DB2 4 RAM paging spaceRAM 4 - DB2 > DB2 model DB2 DB2 DB2 DB2 SQL intra-parallel DB2 1 locklist 1 DB2 A x A y A y x A x y 11. DB2 x y A DB2 A db2inst1 A 1 intra-parallel x y 1 5 - DB2 nic518 2006-12-31 12:59:40 5 RAM db2inst1 A 1 x y x y DB2 RAM RAM 5 DB2 4 ESTORE 12. ESTORE DB2 32 64 32 64 64 DB2 DB2 64 2 64 18,446,744,073GB DB2 32 DB2 2 32 4 GBLinux/390 2 31 Linux/390 DB2 RAM DB2 4GB4GB 1 4GB AIX DB2 Solaris DB2 32 64 32 AIX DB2 32 AIX 4GB 16 256MB 6 DB2 32 DB2_MMAP_READ DB2_MMA_WRITE DB2 NO NO 6 - AIX DB2 32 13. 0 - AIX 1 - db2sysc 2 - 3 - 4 B - 4 8 2GB256MB DB2 B intra-parallel Fast Communication Manager (FCM)FCM 14. UNIX socket DB2_FORCE_FCM_BP YES FCM FCM FCM fenced UDF fenced fenced / loopback TCP/IP loopback DB2 E / ESTORE ESTORE 256MB 256 MB ESTORE estore estore_seg_sz 256MB num_estore_segs C - DB2 D F- DB2 E - DB2_MMAP_READ=NO DB2_MMAP_WRITE=NO DB2 6 DB2_FORCE_FCM_BP=NO DB2_MMAP_READ=NODB2_MMAP_WRITE=NO intra-parallel 2GB 4 B256MB fenced UDF DB2_FORCE_FCM_BP=YES intra_parallel ESTORE DB2_MMAP_READ DB2_MMAP_WRITE NO E locklist svmon AIX 15. AIX db2mtrk svmon DB2 root "svmon -P PID" PID DB2 db2agent db2agentp ID 7 svmon db2agent db2agent TESTINTRAP_PARALLEL = YES (get dbm cfg)DB2_FORCE_FCM_BP = YES (db2set -all)DB2_MMAP_READ=NO, DB2_MMAP_WRITE=NO (db2set -all) 7 - svmon DB2 (svmon -P 11649046) 7 ID 11649046 db2agent TEST svmon TESEsid 16. 4 2 3 B intra_parallel A FCM DB2_FORCE_FCM_BP=YES E DB2_MMAP_READ DB2_MMAP_WRITE NO 8 A B 9 fenced 6 32 AIX ulimit 6 #2 #2 256M 0x20000000 0x2FFFFFFF 4 11 8 - ulimits/etc/security/limits SMIT Data = 491519, Stack = 32767 (512 ) 512 240MB 16MB "ulimit -a" 1K 512 Data = 245760, Stack = 16384 17. /etc/security/limits 512 1 KB 32 AIX - SQL1478W, SQL0987C, SQL1084C - SQL10003N, SQL1042C 1 4KB INTRA_PARALLELOFFDB2_MMAP_READ=NODB2_MMAP_WRITE=NO fenced IBMDEFAULTBP 450,000 UTILHEAP 17,500 DBHEAP 10,000 LOCKLIST 1000 PCKCACHE 5000 CATALOGCACHE 2500 2GB 8 = (486,000 x 4KB/ x 1.1 10% = ~2.1GB= 9 4 2GB SQL1478W The defined buffer pools could not be started. Instead, one small buffer pool for eachpage size supported by DB2 has been started. SQLSTATE=01626 db2diag.log DB2 2 4K fenced INTRA_PARALLEL=ONIBMDEFAULTBP 300,000 18. UTILHEAP 17,500 DBHEAP 10,000 SHEAPTHRES_SHR 50,000 LOCKLIST 1000 PCKCACHE 5000 CATALOGCACHE 2500 1.5GB 6 INTRA_PARALLEL ON DB2_MMAP_READ DB2_MMAP_WRITE YES = (386,000 x 4KB/ x 1.1 = ~1.67GB = 7 1.5GB SQL1042C An unexpected system error occurred. SQLSTATE=58004 db2set DB2_MMAP_READ DB2_MMAP_WRITE NO DB2 E 3 4KIBMDEFAULTBP 250,000 INTRA_PARALLEL=ONUTILHEAP 17,500 DBHEAP 10,000 SHEAPTHRES_SHR 20,000 LOCKLIST 1000 PCKCACHE 5000 CATALOGCACHE 2500 Fenced UDF Intra-parallel ON fenced UDFB 5 1.25G = (306,000 x 4KB/ x 1.1% = ~1.35GB = 6 fenced UDF sql10003C unfenced UDF 5 32- Sun Solaris Version 2.6 DB2 AIX 256MB Solaris 19. 32 Solaris 9 9 - 32 Sun SolarisDB2 32 0x0 0x00010000 0x00010000db2sysc 0x10000000 256MB DB2DBMSADDR DB2 db2sysc 200MB+ 0x10000000 0x12000000 0x10000000 0x12000000 0x10000000 32MB DB2DBMSADDR DB2 db2set DB2DBMSADDR=0x12000000 DB2DBMSADDR 0x10000000 0x10FFFFFF 0x10000 20. DB2 AIX Solaris 4GB - - DB2 - DB2 - db2sysc db2agent ID /usr/proc/bin/pmap root Solaris "pe -ef | grep instance_name" DB2 db2sysc db2ptree DB2 9 pmap nic518 2006-12-31 13:05:06 10 - pmap db2sysc /usr/proc/bin/pmap -x 15444 21. 10 0x00010000 0x023F8000 db2sysc ~36MB 0x023F8000 0x10000000 ~220MB 0x10000000 DB2DBMSADDR 3 pmap 0xFE002000 0xFE002000 - 0x10000000 = 3,992,985,600 =~3.7 GB 0xFFBC0000 0xFFFFFFFF ~4MB 32 Solaris DB2 3.5 GB DB2DBMSADDR DB2DBMSADDR db2set DB2DBMSADDR = 0x12000000db2stopdb2start db2sys IDps -ef | grep sylviaq sylviaq -ef | grep sylviaqsylviaq 13166 1 0 13:09:12 pts/2 0:00 /export/home/sylviaq/sqllib/bin/db2bp 13049C11221 5sylviaq 13263 13256 0 13:11:02 ? 0:00 db2syscsylviaq 13265 13256 0 13:11:03 ? 0:00 db2syscsylviaq 13257 13254 0 13:10:59 pts/3 0:00 -kshsylviaq 13256 13253 0 13:10:59 ? 0:00 db2syscsylviaq 13262 13256 0 13:11:00 ? 0:00 db2syscsylviaq 13360 13049 0 13:11:41 pts/2 0:00 grep sylviaqsylviaq 13264 13256 0 13:11:02 ? 0:00 db2syscsylviaq 13266 13261 0 13:11:03 ? 0:00 db2sysc root cd /usr/proc/pmap db2sysc pmap./pmap -x 13263pmap 22. 13263: db2syscAddress Kbytes Resident Shared Private Permissions Mapped File00010000 35808 4064 1608 2456 read/exec db2sysc02316000 896 168 48 120 read/write/exec db2sysc023F6000 744 264 8 256 read/write/exec [ heap ]12000000 243472 243472 - 243472 read/write/exec/shared [shmid=0xbc3]21000000 22512 22512 - 22512 read/write/exec/shared [shmid=0xbc4]FCC00000 8328 8328 - 8328 read/write/exec/shared [shmid=0xa96]FE002000 8 - - - read/write/exec [ anon ] 0x12000000 0x10000000 heap 220MB 10 252 MB(0x12000000 -0x023F6000 = 0xFC0A000 = 264282112 () = ~252MB) 9 4GB Solaris AIX Solaris AIX 2GB Solaris RAM RAM Sun Solaris 2 AIX Solaris DB2DBMSADDRDB2 3.5GB RAM 32 Sun Solaris - SQL1478W, SQL1084C, hangcondition - SQL2043N, Solaris DB2 db2osconf shmmax DB2 shmseg shmmniSolaris 23. RAM RAM OS 1 4K RAM 16GBshmsys:shminfo_shmmax = 2097152 (2GB)IBMDEFAULTBP 400,000 UTILHEAP 17,500 DBHEAP 30,000 LOCKLIST 1000 PCKCACHE 5000 CATALOGCACHE 2500 DB2 shmmax 2GB out of memory type = (456,000 x 4KB/) x 1.1 = ~2.0GB SQL1224N A database agent could not be started to service request, or was terminated as a resultof a database system shutdown or a force command. SQLSTATE=55032 DB2 AIX UNIX shmsys:shminfo_shmmax = 15099494 (~90% of 16GB) 2 4K RAM 1 GB 24. AIBMDEFAULTBP 137,500 INTRA_PARALLEL ONUTILHEAP 10,000 DBHEAP 10,000 SHEAPTHRES_SHR 20,000 LOCKLIST 1000 PCKCACHE 5000 CATALOGCACHE 2500 APPGROUP_MEM_SZ 20,000 BIBMDEFAULTBP 92,500 INTRA_PARALLEL ONUTILHEAP 5,000 DBHEAP 10,000 SHEAPTHRES_SHR 15,000 LOCKLIST 1000 PCKCACHE 5000 CATALOGCACHE 2500 APPGROUP_MEM_SZ 20,000 RAM 1GB RAM A = (186,000 x 4KB/) x 1.1% = ~818MB A = 20,000 x 4KB/ = 80MB B = (131,000 x 4KB/) x 1.1% = ~576MB B = 20,000 x 4KB/ = 80MB A 818MB + 80MB = ~898MB B 576MB + 80MB = ~656MB A 898MB RAM B SQL1084C Shared memory segments cannot be allocated. SQLSTATE=57019 A B 1.55GB (898MB + 656MB) RAM RAM 1GB RAM 25. RAM 1.55GB RAM A B RAM AIX AIX RAM B A A B 3 4K RAM 16GBshmsys:shminfo_shmmax = 15099494 (16GB ~90%)IBMDEFAULTBP 350,000 UTILHEAP 17,500 DBHEAP 10,000 LOCKLIST 1000 PCKCACHE 5000 CATALOGCACHE 2500 ESTORE_SEG_SZ = 400000 NUM_ESTORE_SEGS = 1 = (386,000 x 4KB/ + 400,000 estore * 100 ) x 1.1 = ~1.66GBESTORE memory = 400000 x 4KB = 1.6GB 1.66GB 3.35GB shmmaxdb2diag.log 2003-12-04-10.10.13.362027 Instance:db2inst1 Node:000PID:18327(db2agent (SAMPLE) 0) TID:1 Appid:*LOCAL.sample.047844091013oper system services sqloVLMAttachVLMSegment Probe:20 Database:SAMPLEsqloVLMAttachVLMSegment - shmat failed0xFFBE833C : 0x0000000Cshmat UNIX shmid Solaris shmat 0x000000C ENOMEM 26. ESTORE ESTORE ESTORE 1.6GB 16GB RAM 1.6GB ESTORE ESTORE_SEG_SZ = 40000 NUM_ESTORE_SEGS = 10 ESTORE ESTORE 1.6 GB ESTORE 10 160MB