Re: Shared buffers, db transactions commited, and write IO on Solaris - Mailing list pgsql-performance

From Erik Jones
Subject Re: Shared buffers, db transactions commited, and write IO on Solaris
Date
Msg-id F007D213-08DB-4B1D-A9BD-4925CAD11334@myemma.com
Whole thread Raw
In response to Re: Shared buffers, db transactions commited, and write IO on Solaris  (Dimitri <dimitrik.fr@gmail.com>)
Responses Re: Shared buffers, db transactions commited, and write IO on Solaris  (Dimitri <dimitrik.fr@gmail.com>)
List pgsql-performance

On Mar 30, 2007, at 8:14 AM, Dimitri wrote:


You are right in that the page size constraint is lifted in that
directio cuts out the VM filesystem cache.  However, the Solaris
kernel still issues io ops in terms of its logical block size (which
we have at the default 8K).  It can issue io ops for fragments as
small as 1/8th of the block size, but Postgres issues its io requests
in terms of the block size which means that io ops from Postgres will
be in 8K chunks which is exactly what we see when we look at our
system io stats.  In fact, if any io request is made that isn't a
multiple of 512 bytes (the disk sector size), the file system
switches back to the buffered io.

Oh, yes, of course! yes, you still need to respect multiple of 512
bytes block size on read and write - sorry, I was tired :)

Then it's seems to be true - default XLOG block size is 8K, means for
every even small auto-committed transaction we should write 8K?... Is
there any reason to use so big default block size?...

Probably it may be a good idea to put it as 'initdb' parameter? and
have such value per database server?

I believe it's because that is a pretty normal Unix kernal block size and you want the two to match.

erik jones <erik@myemma.com>
software developer
615-296-0838
emma(r)



pgsql-performance by date:

Previous
From: Matteo Beccati
Date:
Subject: Re: Wrong plan sequential scan instead of an index one
Next
From: Dimitri
Date:
Subject: Re: Shared buffers, db transactions commited, and write IO on Solaris