Re: [GENERAL] Can we Flush the Postgres Shared Memory ?

From: tv(at)fuzzy(dot)cz
To: "raghu ram" <raghuchennuru(at)gmail(dot)com>
Cc: "Raghavendra" <raghavendra(dot)rao(at)enterprisedb(dot)com>, "Simon Riggs" <simon(at)2ndquadrant(dot)com>, "pgsql-admin" <pgsql-admin(at)postgresql(dot)org>, "pgsql-general" <pgsql-general(at)postgresql(dot)org>, "pgsql novice" <pgsql-novice(at)postgresql(dot)org>
Subject: Re: [GENERAL] Can we Flush the Postgres Shared Memory ?
Date: 2011-05-03 13:53:27
Message-ID: 6a9c2326b29433bde0de5c8a887d65be.squirrel@sq.gransy.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin pgsql-general pgsql-novice

> On Tue, May 3, 2011 at 6:01 PM, Raghavendra <
> raghavendra(dot)rao(at)enterprisedb(dot)com> wrote:
>
>>
>> On Tue, May 3, 2011 at 5:37 PM, Simon Riggs <simon(at)2ndquadrant(dot)com>
>> wrote:
>>
>>> On Tue, May 3, 2011 at 11:54 AM, raghu ram <raghuchennuru(at)gmail(dot)com>
>>> wrote:
>>>
>>> > It may be a silly question, still out of curiosity I want to know, is
>>> there
>>> > any possible way to flush the Postgres Shared Memory without
>>> restarting
>>> the
>>> > cluster.
>>> > In Oracle, we can flush the SGA, can we get the same feature here..
>>> > Thanks in Advance.
>>>
>>>
>>> The CHECKPOINT command will do this for you.
>>>
>>
>>
>>
> According to PostgreSQL documentation, whenever you execute "CHECKPOINT"
> in
> the database,it will flush the modified data files presented in the Shared
> Buffers retuned to the Disk.
>
> http://www.postgresql.org/docs/9.0/static/sql-checkpoint.html
>
> Is this clears the entire shared memory cache and same time,if i execute
> fresh SQL statement, Data will be retuned from disk??

No. Checkpoint means all dirty buffers are written to the datafiles, it
does not mean emptying the shared buffers. Checkpoints happen regularly so
this would have an unwanted impact on performance.

And besides that, there's a page cache maintained by the OS (not sure if
you're running Linux or Windows). So even when the block does not exist in
the shared buffers, it may be in the page cache (thus not read from the
drive).

Dropping the page cache is quite simple (http://linux-mm.org/Drop_Caches),
emptying the shared buffers is not that simple - I guess the easiest way
is to restart the db.

What are you trying to achieve? Why do you need this?

Tomas

In response to

Browse pgsql-admin by date

  From Date Subject
Next Message Simon Riggs 2011-05-03 13:54:30 Re: Can we Flush the Postgres Shared Memory ?
Previous Message Merlin Moncure 2011-05-03 13:51:07 Re: [GENERAL] Can we Flush the Postgres Shared Memory ?

Browse pgsql-general by date

  From Date Subject
Next Message Simon Riggs 2011-05-03 13:54:30 Re: Can we Flush the Postgres Shared Memory ?
Previous Message Merlin Moncure 2011-05-03 13:51:07 Re: [GENERAL] Can we Flush the Postgres Shared Memory ?

Browse pgsql-novice by date

  From Date Subject
Next Message Simon Riggs 2011-05-03 13:54:30 Re: Can we Flush the Postgres Shared Memory ?
Previous Message Merlin Moncure 2011-05-03 13:51:07 Re: [GENERAL] Can we Flush the Postgres Shared Memory ?