Hello Postgres Admins, I am having a bit of trouble setting postgres memory
parameters on a windows machine. I figured out the parameters based on postgres
documentation as well as the whack a mole slide deck, but the postgres process
will not start. Event log keeps indicating the following reason for the
postgres process : FATAL: could not create shared
memory segment I can not find any documentation specific to windows… Environment: 2008 Windows server, 64bit 20 gigs of ram (I am assuming 2gigs for os, 3 gigs for other
apps that are running on the machine, which leaves me with 15gigs of memory I
could give to Postgres) I would like to give postgres as much memory as possible as
this cluster is hosting very large data, by large I mean that it took over 20
hours to load the data and postgres complained about running out of
max_fsm_pages and checkpoint_segments when trying to create a primary key. I found that to figure out the value for the max_fsm_pages
parameter I should run vacuumdb –v which came back with a value of 599,584
as opposed to the default 204800 I set the parameters with the following values, which
failed: Effective_cache_size – 8 gigs
– rec: 50%-66% of total ram Shared_buffers – 4 gigs – rec:
25%-33% of total ram Work_mem – 128MB – rec: from
whack a mole presentation Maintenance_work_memory – 256MB
– rec: from whack a mole presentation Checkpoint_segmetns – 256MB –
rec: from whack a mole presentation Max_fsm_pages – 600,000 – rec:
from running the vacuumdb command, which I rounded up After that failed, I tried setting
shared_buffers and effective_cache_size to 2 gigs each, remembering that on a
32 bit windows system a process can only utilize 2gig address space, but that
was a shot in the dark as this is a 64bit machine so the 32bit limitation
should not apply, of course that implies an assumption that each of these
parameters would be utilized by a different background process, which may be
erroneous. Does anyone have any recommendations or
corrections? Thank you, Kasia |