Hi Everyone,
environment:
DB2 9.5 WSE with FP 2a
Solaris 10 u5 - 64-bit
SMP - 2 Quad CPUS - total 8 cores
16 GB RAM
SAMPLE database
Solaris Containers
I am facing some problems with allocating bufferpools. The database
software is installed inside a Solaris container having 4 CPUs and
14GB of RAM allocation (physical & locked). Inside the solaris
container, the DB2 instance is associated to a project. The project
has the following resource controls in place:
project.max-shm-memory = 28GB
project.max-sem-ids = 10240
project.max-msg-ids = 10240
project.max-shm-ids = 10240
I ran db2osconf on the global zone and following is the output:
set msgsys:msginfo_msgmni = 5120
set semsys:seminfo_semmni = 6144
set shmsys:shminfo_shmmax = 30906055065
set shmsys:shminfo_shmmni = 6144
set rlim_fd_max = 65536
Total kernel space for IPC:
0.84MB (shm) + 1.87MB (sem) + 2.05MB (msg) == 4.77MB (total)
I don't know where to set "rlim_fd_max = 65536". is it going in the
resource controls or in /etc/system?
The bufferpool is set as:
BPNAME
NPAGES PAGESIZE
--------------------------------------------------------------------------------------------------------------------------------
----------- -----------
IBMDEFAULTBP
700000 8192
700000 * 8192 = roughly 5.3gb
As per db2mtrk, I am using 5.5gb sized bufferpool:
Memory for database: SAMPLE
utilh pckcacheh other catcacheh bph (1) bph
(S32K)
64.0K 576.0K 192.0K 320.0K 5.5G 832.0K
bph (S16K) bph (S8K) bph (S4K) shsorth lockh dbh
576.0K 448.0K 384.0K 256.0K 640.0K 34.5M
apph (78) apph (24) apph (23) apph (22) apph (21) apph
(20)
64.0K 64.0K 64.0K 64.0K 64.0K 64.0K
appshrh
384.0K
If I increase the bufferpool size from 700000 to 800000 (6.1gb), the
system allocates the space in runtime and I can see the jump in the
db2mtrk output, but, if I restart the instance and re-activate the
database, it fails to allocate the bufferpool. The instance comes up
with the hidden system bufferpools and I have to reduce the bufferpool
down to 700000 followed by a connect to the db, to populate it.
I was thinking it was related to the instance_memory DBM CFG
parameter, but I have tried setting it to 3600825 4K pages (13.7gb)
and that did not make any difference. I think i read it somewhere that
as the size of the bufferpool increases, one should also increase some
other "descriptors" as well, but i dont remember where. I am going
through the db2 manual to see if i can find a refernce somewhere.
The message gets logged in the db2diag.log file as well:
2008-10-17-11.02.18.185376-240 I5369661E933 LEVEL: Warning
PID : 2848 TID : 13 PROC : db2sysc
INSTANCE: db2inst1 NODE : 000 DB : SAMPLE
APPHDL : 0-7 APPID: *LOCAL.db2inst1.081017150218
AUTHID : DB2INST1
EDUID : 13 EDUNAME: db2agent (SAMPLE)
FUNCTION: DB2 UDB, base sys utilities, sqeLocalDatabase::FirstConnect,
probe:1516
MESSAGE : ZRC=0x850F0005=-2062614523=SQLO_NOSEG
"No Storage Available for allocation"
DIA8305C Memory allocation failure occurred.
DATA #1 : String, 286 bytes
Failed to allocate the desired database shared memory set.
Check to make sure the configured DATABASE_MEMORY + overflow
does not exceed the maximum shared memory on the system.
Attempting to start up with only the system buffer pools.
Desired database shared memory set size is (bytes):
DATA #2 : unsigned integer, 8 bytes
7618822144
If its not the DB2 instance at fault, then probably, I am missing
something at the resource control level for the container.
Here is what the project looks like inside the container:
user.db2inst1
projid : 100
comment: "IBM DB2 Dataabses"
users : db2inst1
groups : db2iadm1
attribs: project.max-msg-ids=(priv,10240,deny)
project.max-sem-ids=(priv,10240,deny)
project.max-shm-ids=(priv,10240,deny)
project.max-shm-memory=(priv,30906055065,deny)
prctl output is:
ibmdb2% prctl 2848
process: 2848: db2sysc
NAME PRIVILEGE VALUE FLAG ACTION
RECIPIENT
process.max-port-events
privileged 65.5K -
deny -
system 2.15G max
deny -
process.max-msg-messages
privileged 8.19K -
deny -
system 4.29G max
deny -
process.max-msg-qbytes
privileged 64.0KB -
deny -
system 16.0EB max
deny -
process.max-sem-ops
privileged 512 -
deny -
system 2.15G max
deny -
process.max-sem-nsems
privileged 512 -
deny -
system 32.8K max
deny -
process.max-address-space
privileged 16.0EB max
deny -
system 16.0EB max
deny -
process.max-file-descriptor
privileged 65.5K -
deny -
system 2.15G max
deny -
process.max-core-size
privileged 8.00EB max
deny -
system 8.00EB max
deny -
process.max-stack-size
basic 10.0MB -
deny 2848
privileged 125TB -
deny -
system 125TB max
deny -
process.max-data-size
privileged 16.0EB max
deny -
system 16.0EB max
deny -
process.max-file-size
privileged 8.00EB max
deny,signal=XFSZ -
system 8.00EB max
deny -
process.max-cpu-time
privileged 18.4Es inf
signal=XCPU -
system 18.4Es inf
none -
task.max-cpu-time
system 18.4Es inf
none -
task.max-lwps
system 2.15G max
deny -
project.max-contracts
privileged 10.0K -
deny -
system 2.15G max
deny -
project.max-device-locked-memory
privileged 1002MB -
deny -
system 16.0EB max
deny -
project.max-locked-memory
system 16.0EB max
deny -
project.max-port-ids
privileged 8.19K -
deny -
system 65.5K max
deny -
project.max-shm-memory
privileged 28.8GB -
deny -
system 16.0EB max
deny -
project.max-shm-ids
privileged 10.2K -
deny -
system 16.8M max
deny -
project.max-msg-ids
privileged 10.2K -
deny -
system 16.8M max
deny -
project.max-sem-ids
privileged 10.2K -
deny -
system 16.8M max
deny -
project.max-crypto-memory
privileged 3.91GB -
deny -
system 16.0EB max
deny -
project.max-tasks
system 2.15G max
deny -
project.max-lwps
system 2.15G max
deny -
project.cpu-cap
system 4.29G inf
deny -
project.cpu-shares
privileged 1 -
none -
system 65.5K max
none -
zone.max-swap
privileged 8.00GB -
deny -
system 16.0EB max
deny -
zone.max-locked-memory
privileged 14.0GB -
deny -
system 16.0EB max
deny -
zone.max-shm-memory
privileged 14.0GB -
deny -
system 16.0EB max
deny -
zone.max-shm-ids
system 16.8M max
deny -
zone.max-sem-ids
system 16.8M max
deny -
zone.max-msg-ids
system 16.8M max
deny -
zone.max-lwps
system 2.15G max
deny -
zone.cpu-cap
privileged 400 -
deny -
system 4.29G inf
deny -
zone.cpu-shares
privileged 1 -
none -
system 65.5K max
none -
ibmdb2%
Any help is much appreciated.
Thanks in advance.
dotyet