Hello,
Could anyone tell me how to use 2GB of shared buffers on Windows? I'm
sorry for attaching large text files and for sending this mail to this
ML.
When I try to start PostgreSQL 8.2.1 on Windows 2003 Server with
shared_buffers=1024MB, I get the following error messages in the Event
Log (with log_min_messages=debug5) and can't start PostgreSQL:
DEBUG: mapped win32 error code 8 to 12
FATAL: shmat(id=1880) failed: Not enough space
This means the Win32 API MapViewOfFile() failed with error code =
ERROR_NOT_ENOUGH_MEMORY. However, the machine has 4GB of RAM and the
maximum size of paging file is 8GB.
But I could start PostgreSQL with shared_buffers=900MB. Then, I
peeked the memory map of postgres. The attached files are the memory
usage of postgres obtained by vadump. which is a tool included in
Microsoft Resource Kit (vadump is downloadable freely.)
(I'm using packaged PostgreSQL 8.2.1 available from
www.postgresql.org.)
--------------------------------------------------
Symbols loaded: 10000000 : 10107000 libeay32.dll
Symbols loaded: 1c000000 : 1c006000 comerr32.dll
Symbols loaded: 5ba20000 : 5ba77000 hnetcfg.dll
Symbols loaded: 61770000 : 61779000 LPK.DLL
--------------------------------------------------
These modules appear to be criminals. They are spliting the address
space of postgres and preventing postgres from allocating a large
shared memory. They seem to be the open source libraries (but what is
hnetcfg.dll?)
Why are they located on strange (evil) places? What can I do?