Re: Query regarding pg_prewarm extension

From: Bruce Momjian <bruce(at)momjian(dot)us>
To: Jeremy Schneider <schneider(at)ardentperf(dot)com>
Cc: Ayush Vatsa <ayushvatsa1810(at)gmail(dot)com>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Query regarding pg_prewarm extension
Date: 2024-12-29 00:59:55
Message-ID: Z3CfC5kpqDf3NQ1c@momjian.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Fri, Dec 13, 2024 at 05:20:05PM -0800, Jeremy Schneider wrote:
> On Fri, 13 Dec 2024 16:16:16 +0530
> Ayush Vatsa <ayushvatsa1810(at)gmail(dot)com> wrote:
>
> > How can I decide which range of pages to prewarm?
> > I assume that it is related to hot pages in the relation,
> > but how can I identify which pages are likely to be hot
> > before they are even in the buffer cache?
> > Additionally, since tuples within a page can move to
> > different pages over time (due to operations like VACUUM FULL or
> > REINDEX), how should I handle this when selecting the pages to
> > prewarm?
>
> For my part, I've only used the block offsets when I wanted to fire off
> several jobs in parallel, attempting to prewarm a relation faster. I've
> never tried to track the location of specific rows for purposes of
> prewarming.
>
> You might try the "autoprewarm" feature. After adding pg_prewarm to
> your shared_preload_libraries, it will automatically keep track of the
> contents of the buffer cache and after a restart it will automatically
> prewarm the buffer cache with the blocks that were there before.
>
> https://www.enterprisedb.com/blog/autoprewarm-new-functionality-pgprewarm
>
> Alternatively you could just prewarm a few of your most important hot
> tables and indexes with a script after restarts.
>
> For most smaller databases, slightly slower performance for a short
> period after startup isn't a problem - while reading blocks from disk
> for the first time. After the first read, blocks that are frequently
> accessed will remain in the cache. The Postgres cache management
> algorithm works well in general.
>
> This is my two cents, anyway

It feels like we should document what the block range is used for, so
attached is a doc patch to do that.

--
Bruce Momjian <bruce(at)momjian(dot)us> https://momjian.us
EDB https://enterprisedb.com

Do not let urgent matters crowd out time for investment in the future.

Attachment Content-Type Size
prewarm.diff text/x-diff 853 bytes

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message jian he 2024-12-29 02:48:51 Re: Re: proposal: schema variables
Previous Message Bruce Momjian 2024-12-28 23:47:08 Re: IANA timezone abbreviations versus timezone_abbreviations