pg.ddx.io  pgsql-performance@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Alex Deucher <alexdeucher@gmail.com>
To: Erik Jones <erik@myemma.com>
Cc: Xiaoning Ding <dingxn@cse.ohio-state.edu>
Cc: pgsql-performance@postgresql.org
Subject: Re: a question about Direct I/O and double buffering
Date: Thu, 5 Apr 2007 14:56:13 -0400
Message-ID: <a728f9f90704051156k4e5c3889s84a213c55b811830@mail.gmail.com> (raw)
In-Reply-To: <0F61A03E-DF77-46C2-B7E1-2E7A5F985FB8@myemma.com>
References: <46152D5D.5030602@cse.ohio-state.edu>
	<4C4C834E-9304-4E23-AD15-1756921500B5@myemma.com>
	<46153E7D.7030208@cse.ohio-state.edu>
	<0F61A03E-DF77-46C2-B7E1-2E7A5F985FB8@myemma.com>

On 4/5/07, Erik Jones <erik@myemma.com> wrote:
>
> On Apr 5, 2007, at 1:22 PM, Xiaoning Ding wrote:
>
> Erik Jones wrote:
> On Apr 5, 2007, at 12:09 PM, Xiaoning Ding wrote:
> Hi,
>
> A page may be double buffered in PG's buffer pool and in OS's buffer cache.
> Other DBMS like DB2 and Oracle has provided Direct I/O option to eliminate
> double buffering. I noticed there were discusses on the list. But
> I can not find similar option in PG. Does PG support direct I/O now?
>
> The tuning guide of PG usually recommends a small shared buffer pool
> (compared
> to the size of physical memory).  I think it is to avoid swapping. If
> there were
> swapping, OS kernel may swap out some pages in PG's buffer pool even PG
> want to keep them in memory. i.e. PG would loose full control over
> buffer pool.
> A large buffer pool is not good because it may
> 1. cause more pages double buffered, and thus decrease the efficiency of
> buffer
> cache and buffer pool.
> 2. may cause swapping.
> Am I right?
>
> If PG's buffer pool is small compared with physical memory, can I say
> that the
> hit ratio of PG's buffer pool is not so meaningful because most misses
> can be
> satisfied by OS Kernel's buffer cache?
>
> Thanks!
> To the best of my knowledge, Postgres itself does not have a direct IO
> option (although it would be a good addition).  So, in order to use direct
> IO with postgres you'll need to consult your filesystem docs for how to set
> the forcedirectio mount option.  I believe it can be set dynamically, but if
> you want it to be permanent you'll to add it to your fstab/vfstab file.
>
> I use Linux.  It supports direct I/O on a per-file basis only.  To bypass OS
> buffer cache,
> files should be opened with O_DIRECT option.  I afraid that I have to modify
> PG.
>
> Xiaoning
> Looks like it.  I just did a cursory search of the archives and it seems
> that others have looked at this before so you'll probably want to start
> there if your up to it.
>

Linux used to have (still does?) a RAW interface which might also be
useful.  I think the original code was contributed by oracle so they
could support direct IO.

Alex



view thread (16+ messages)  latest in thread

Message-ID: <a728f9f90704051156k4e5c3889s84a213c55b811830@mail.gmail.com>
Permalink:  ../a728f9f90704051156k4e5c3889s84a213c55b811830@mail.gmail.com/
Also on:    postgresql.org/message-id/a728f9f90704051156k4e5c3889s84a213c55b811830@mail.gmail.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-performance@postgresql.org
  Cc: alexdeucher@gmail.com, erik@myemma.com, dingxn@cse.ohio-state.edu
  Subject: Re: a question about Direct I/O and double buffering
  In-Reply-To: <a728f9f90704051156k4e5c3889s84a213c55b811830@mail.gmail.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox