Thread: Bufer cache replacement LRU algorithm?
Where can I find the documentation describing the buffer replacement policy? Are there any parameters governing the page replacement policy? -- Mladen Gogala Sr. Oracle DBA 1500 Broadway New York, NY 10036 (212) 329-5251 http://www.vmsinfo.com The Leader in Integrated Media Intelligence Solutions
Mladen, You would need to check the mailing lists. The release notes have it as being a clock sweep algorithm starting in version 8. Then additional changes were added to eliminate the cache blowout caused by a sequential scan and by vacuum/autovacuum. I do not believe that there are any parameters available other than total size of the pool and whether sequential scans are synchronized. Regards, Ken On Wed, Nov 03, 2010 at 12:35:33PM -0400, Mladen Gogala wrote: > Where can I find the documentation describing the buffer replacement > policy? Are there any parameters governing the page replacement policy? > > -- > Mladen Gogala Sr. Oracle DBA > 1500 Broadway > New York, NY 10036 > (212) 329-5251 > http://www.vmsinfo.com The Leader in Integrated Media Intelligence > Solutions > > > > > -- > Sent via pgsql-performance mailing list (pgsql-performance@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-performance >
Kenneth Marshall <ktm@rice.edu> wrote: > On Wed, Nov 03, 2010 at 12:35:33PM -0400, Mladen Gogala wrote: >> Where can I find the documentation describing the buffer >> replacement policy? Are there any parameters governing the page >> replacement policy? > You would need to check the mailing lists. The release notes > have it as being a clock sweep algorithm starting in version > 8. Then additional changes were added to eliminate the cache > blowout caused by a sequential scan and by vacuum/autovacuum. > I do not believe that there are any parameters available other > than total size of the pool and whether sequential scans are > synchronized. The background writer settings might be considered relevant, too. Also keep in mind that PostgreSQL goes through the OS cache and filesystems; the filesystem choice and OS settings will have an impact on how that level of caching behaves. Since there is often much more cache at the OS level than in PostgreSQL shared buffers, you don't want to overlook that aspect of things. -Kevin
Mladen Gogala wrote: > Where can I find the documentation describing the buffer replacement > policy? Are there any parameters governing the page replacement policy? I wrote a pretty detailed description of this in my "Inside the PostgreSQL Buffer Cache" presentation at http://projects.2ndquadrant.com/talks and nothing in this specific area has changed significantly since then. There aren't any specific tunables in this area beyond the ones that cover sizing of the buffer pool and how often checkpoints happen. There's a TODO item to benchmark toward whether there's any gain to increasing the maximum usage count an individual page can accumulate, currently hard coded at 5. That's the main thing that could be tunable in this area that currently isn't. -- Greg Smith 2ndQuadrant US greg@2ndQuadrant.com Baltimore, MD PostgreSQL Training, Services and Support www.2ndQuadrant.us "PostgreSQL 9.0 High Performance": http://www.2ndQuadrant.com/books