Re: Windows SHMMAX (was: Default configuration) - Mailing list pgsql-hackers

From Greg Copeland
Subject Re: Windows SHMMAX (was: Default configuration)
Date
Msg-id 1044991397.2501.212.camel@mouse.copelandconsulting.net
Whole thread Raw
In response to Windows SHMMAX (was: Default configuration)  ("Merlin Moncure" <merlin.moncure@rcsonline.com>)
List pgsql-hackers
On Tue, 2003-02-11 at 12:49, Merlin Moncure wrote:
> Does anyone know whether cygwin has a setting comparable to SHMMAX,
> and if so what is its default value?  How about the upcoming native
> Windows port --- any issues there?
> 
> >From a pure win32 point of view, a good approach would be to use the
> VirtualAlloc() memory allocation functions and set up a paged memory
> allocation system.  From a very top down point of view, this is the
> method of choice if portability is not an issue.  An abstraction to use
> this technique within pg context is probably complex and requires
> writing lots of win32 api code, which is obviously not desirable.
> 
> Another way of looking at it is memory mapped files.  This probably most
> closely resembles unix shared memory and is the de facto standard way
> for interprocess memory block sharing.  Sadly, performance will suffer
> because you have to rely on the virtual memory system (think: writing to
> files) to do a lot of stupid stuff you don't necessarily want or need.
> The OS has to guarantee that the memory can be swapped out to file at
> any time and therefore mirrors the pagefile to the allocated memory
> blocks.
> 
> With the C++/C memory malloc/free api, you are supposed to be able to
> get some of the benefits of virtual alloc (in particular, setting a
> process memory allocation limit), but personal experience did not bear
> this out.  However, this api sits directly over the virtual allocation
> system and is the most portable.  The application has to guard against
> fragmentation and things like that in this case.  In win32, server
> thrashing is public enemy #1 for database servers, mostly due to the
> virtual allocation system (which is quite fast when used right, btw).


IIRC, there is a mechanism which enables it to be directly
supported/mapped via pagefile.  This is the preferred means of memory
mapped files unless you have a specific need which dictates otherwise. 
Meaning, it allows for many supposed optimizations to be used by the OS
as it is suppose to bypass some of the filesystem overhead.


Regards,

-- 
Greg Copeland <greg@copelandconsulting.net>
Copeland Computer Consulting



pgsql-hackers by date:

Previous
From: Greg Copeland
Date:
Subject: Re: Changing the default configuration (was Re:
Next
From: Jeff Hoffmann
Date:
Subject: Re: Changing the default configuration (was Re: [pgsql-advocacy]