[prev in list] [next in list] [prev in thread] [next in thread] 

List:       postgresql-general
Subject:    Re: Different memory allocation strategy in Postgres 11?
From:       Thomas Kellerer <spam_eater () gmx ! net>
Date:       2018-10-30 7:10:34
Message-ID: 96bfc389-120c-8e7e-b9aa-6dc70f2b03a4 () gmx ! net
[Download RAW message or body]

Thomas Munro schrieb am 26.10.2018 um 22:13:
> > > I typically configure "shared_buffers = 4096MB" on my 16GB system as sometimes \
> > > when testing, it pays off to have a bigger cache. 
> > > With Postgres 10 and earlier, the Postgres process(es) would only allocate that \
> > > memory from the operating system when needed. So right after startup, it would \
> > > only consume several hundred MB, not the entire 4GB 
> > > However with Postgres 11 I noticed that it immediately grabs the complete \
> > > memory configured for shared_buffers during startup. 
> > > It's not really a big deal, but I wonder if that is an intentional change or a \
> > > result from something else? 
> > > 
> > > Do you have pg_prewarm in shared_preload_libraries?
> > 
> > No. The only shared libraries are those for pg_stat_statemens
> 
> Does your user have "Lock Pages in Memory" privilege?  One thing that
> is new in 11 is huge AKA large page support, and the default is
> huge_pages=try.  Not a Windows person myself but I believe that should
> succeed if you have that privilege and enough contiguous chunks of
> physical memory are available.  If you set huge_pages=off does it
> revert to the old behaviour?

Turns out this was an "optimization" in Windows 10, and completely unrelated to \
Postgres.

Windows 10 has a feature called "Fast Boot" (or something along the lines). 

When that is activated (which it is by default), a proper shutdown of the system does \
not seem to really shut it down. This is especially noteworthy with services: they \
don't get a shutdown event (which e.g. means even a service marked as "manual start", \
will still be running after a reboot if it did before) 

In case of Postgres this is visible e.g. in the logfile, because there will no \
shutdown or startup messages. 

So when I booted my laptop, Postgres continued where it was before the reboot - and \
the memory usage was caused caused by myself generating test data using \
generate_series() but I expected a "clean" state after the reboot.

When manually restarting the service everything works as expected. 

Sorry for the noise.



 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic