Re: Windows SHMMAX (was: Default configuration)
От | Greg Copeland |
---|---|
Тема | Re: Windows SHMMAX (was: Default configuration) |
Дата | |
Msg-id | 1044991397.2501.212.camel@mouse.copelandconsulting.net обсуждение исходный текст |
Ответ на | Windows SHMMAX (was: Default configuration) ("Merlin Moncure" <merlin.moncure@rcsonline.com>) |
Список | 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 по дате отправления: