Monday, February 3, 2014

Cleaning up a shared memory segment which won't go away with ipcrm

I have seen this happening when we run DB2 on AIX. Sometimes a stopped instance won't release the shared memory segment, not even with ipcrm. Here's what can be done under this situation:

1) Use the new -S option on ipcs to obtain the shared memory segment ID.
# ipcs -mS
m 131075 0x00001a4c --rw------- root system
2) Verify that the svmon command is installed on the system. If not,
install from the AIX installation CDs.
$ lslpp -l

3) Use the svmon command to find all processes attached to the shared
memory segment.
# svmon -S 0x2b85 -l

Vsid Esid Type Description LPage Inuse Pin Pgsp Virtual
2b85 3 work shared memory segment - 656 0 0 656

This shared memory segment has only one process attached.

To remove this shared memory segment, you must first kill the process that is attached to the segment.
# kill 10862
# ipcrm -m 131075

No comments:

Post a Comment