Обсуждение: Performance Tuning and Disk Cache

От:
Barry Moore
Дата:

I have a very slow query that I'm trying to tune.  I think my
performance tuning is being complicated by the system's page cache.

If a run the query after the system has been busy with other tasks
for quite a long time then the query can take up to 8-10 minutes to
complete.  If I then rerun the same query it will complete in a
couple of seconds.

Does anyone know how I can repeatedly run the same query in the
"worst case scenario" of no postgres data in the disk cache (e.g.,
clear the page cache or force it to be ignored)?

Thanks for any help.

Barry


От:
"hubert depesz lubaczewski"
Дата:

On 3/18/07, Barry Moore <> wrote:
> Does anyone know how I can repeatedly run the same query in the
> "worst case scenario" of no postgres data in the disk cache (e.g.,
> clear the page cache or force it to be ignored)?

try to disconnect from postgresql, reconnect, rerun the query.
if it doesn't help - you can try unmounting filesystem which contains
postgresql data, and remounting it again. of course with postgresql
shutdown.

depesz

--
http://www.depesz.com/ - nowy, lepszy depesz

От:
David Boreham
Дата:

Barry Moore wrote:

> I have a very slow query that I'm trying to tune.  I think my
> performance tuning is being complicated by the system's page cache.
>
> If a run the query after the system has been busy with other tasks
> for quite a long time then the query can take up to 8-10 minutes to
> complete.  If I then rerun the same query it will complete in a
> couple of seconds.
>
> Does anyone know how I can repeatedly run the same query in the
> "worst case scenario" of no postgres data in the disk cache (e.g.,
> clear the page cache or force it to be ignored)?

In my experience the only 100% reliable way to do this is to reboot the
machine.



От:
"Rangarajan Vasudevan"
Дата:

If you are running on a Linux kernel, try /proc/sys/vm/drop_caches. I
believe the appropriate command is "echo 3 > /proc/sys/vm/drop_caches".
Since Postgres has its own cache of data, the above followed by a PG
restart should do what you are looking for.

Ranga


> Barry Moore wrote:
>
>> I have a very slow query that I'm trying to tune.  I think my
>> performance tuning is being complicated by the system's page cache.
>>
>> If a run the query after the system has been busy with other tasks
>> for quite a long time then the query can take up to 8-10 minutes to
>> complete.  If I then rerun the same query it will complete in a
>> couple of seconds.
>>
>> Does anyone know how I can repeatedly run the same query in the
>> "worst case scenario" of no postgres data in the disk cache (e.g.,
>> clear the page cache or force it to be ignored)?
>
> In my experience the only 100% reliable way to do this is to reboot the
> machine.
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: Have you checked our extensive FAQ?
>
>                http://www.postgresql.org/docs/faq
>



От:
Michael Stone
Дата:

On Sun, Mar 18, 2007 at 06:45:34AM -0600, Barry Moore wrote:
>Does anyone know how I can repeatedly run the same query in the
>"worst case scenario" of no postgres data in the disk cache (e.g.,
>clear the page cache or force it to be ignored)?

Depends on your OS. On linux you can run:
echo 1 > /proc/sys/vm/drop_caches

Mike Stone