Yes, I checked kernel parameters and they look ok:
IPC Resource Limits, '/usr/bin/ipcs -l'
------ Shared Memory Limits --------
max number of segments = 4096
max seg size (kbytes) = 67108864
max total shared memory (kbytes) = 17179869184
min seg size (bytes) = 1
------ Semaphore Limits --------
max number of arrays = 1024
max semaphores per array = 250
max semaphores system wide = 32000
max ops per semop call = 32
semaphore max value = 32767
------ Messages: Limits --------
max queues system wide = 1024
max size of message (bytes) = 65536
default max size of queue (bytes) = 65536
Instance "xxxxxxxxx" uses "64" bits and DB2 code release "SQL09055"
with level identifier "06060107".
Informational tokens are "DB2 v9.5.0.5", "s091123", "MI00316", Fix Pack "5".
DATA #2 : System Info, 440 bytes
System: Linux x88cpdc 6 2 x86_64
CPU: total:4 online:4 Cores per socket:4 Threading degree per core:1
Physical Memory(MB): total:16049 free:6648
Virtual Memory(MB): total:17046 free:7645
Swap Memory(MB): total:997 free:997
Kernel Params: msgMaxMessageSize:65536 msgMsgMap:65536 msgMaxQueueIDs:1024
msgNumberOfHeaders:65536 msgMaxQueueSize:65536
msgMaxSegmentSize:16 shmMax:68719476736 shmMin:1 shmIDs:4096
shmSegments:4096 semMap:32000 semIDs:1024 semNum:32000
semUndo:32000 semNumPerID:250 semOps:32 semUndoSize:20
semMaxVal:32767 semAdjustOnExit:32767
Cur cpu time limit (seconds) = 0xFFFFFFFF
Cur file size limit (bytes) = 0xFFFFFFFF
Cur data size (bytes) = 0xFFFFFFFF
Cur stack size (bytes) = 0x00A00000
Cur core size (bytes) = 0x00000000
Cur memory size (bytes) = 0xFFFFFFFF
nofiles (descriptors) = 0x00000400
STTM should be off, I don't see any activity in the STMM logs.
I also made sure that their Linux env meets system requirements as per:
IBM developerWorks: Wikis - Information Management - Red Hat Enterprise Linux (RHEL) 5 - DB2 9.5
This problem occurs during db migration from v8 to v9.5 (via restore), during system catalog migration step - migrating existing tables or creating new ones. The db is very small (backup image is ~160MB if compressed during backup and ~1GB if uncompressed) so it's not clear why db2 is getting an out of memory from the OS... Restoring the same backup image back to v8 completed successfully (cat migration is not needed).
They use VCS and some vormetric FS guard software (for encryption), don't know if this is related or not.
Any idea on how to check for amount of pinned memory at the OS level?