Probably, it is because that big piece of _shared memory_ eat so much
pv_entries that some kernel map have been exhausted. So you receive
panic. You should supply detailed panic trace.
kern.shminfo.shmmax
Probably, it is because that big _buffer cache_ eat so much pv_entries
that some kernel map have been exhausted. So you receive panic. :-)
You should supply detailed panic trace. This case must be most
interesting. I think Bob Beck can say you much more if you do so.
here's
Again, you should supply detailed panic trace.
Can you try this. Setup options in assume that you have 1G ram. Set
shared buffers to something about 256M, and buffer cache to something
about 768M. And appropriate shmmax/shmall and effective_cache_size.
This will not set so much pressure to kernel map, so you should not
see so much panics.
Keep in mind, that postgres eat and uses memory in other places
(AFAIR, work buffers, temp buffers, etc). And there are one process
per connection(!), so that usage multiplies. And yes, they can eat
pv_entries too...
So, first, others 3G ram will not idle, it will be actively used by
(many) postgres processes. Second, try to reduce max connections to
reduce maximum of simultaneous postgres processes, so they not "eat
all pv_entries".
--
antonvm