OK, John, I think I have an answer for you. It is not pretty. You actually got pretty close. First, increase SHMMAXPGS by 1024 for every additional 4MB of shared memory: /sys/sys/shm.h:69:#define SHMMAXPGS 1024 /* max hardware pages... The default setting of 1024 is for a maximum of 4MB of shared memory. Second, use bpatch to find the sysptsize value for the current kernel. This is computed dynamically at bootup. $ bpatch -r sysptsize 0x9 = 9 Next, change SYSPTSIZE to a hard-coded value. Use the bpatch value, plus add 1 for every additional 4MB of shared memory you desire. /sys/i386/i386/i386_param.c:28:#define SYSPTSIZE 0 /* dynamically... sysptsize can not be changed by sysctl on the fly. This should clearly be easier to do on BSDI. I will add a BSDI FAQ for PostgreSQL to cover this. One downside is that shared memory is not pageable. It is locked in RAM. Sorry I am getting to this so late. I just finished my book. -- Bruce Momjian | http://www.op.net/~candle [EMAIL PROTECTED] | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026