Greg Smith <[EMAIL PROTECTED]> wrote:

> > In my understanding, each backend pins two or so buffers at once. So 
> > percentage of pinned buffers should be low.
> 
> With the pgbench workload, a substantial percentage of the buffer cache 
> ends up pinned.

> http://westnet.com/~gsmith/content/postgresql/new-patch-checkpoint.txt 
> bgwriter scan all writes=16.6 MB (69.3%) pinned=11.7 MB (48.8%) LRU=7.7 MB 
> (31.9%)
> ...
> checkpoint required (wrote checkpoint_segments)
> checkpoint buffers dirty=19.4 MB (80.8%) write=188.9 ms sync=4918.1 ms
> 
> Here 69% of the buffer cache contained dirty data, and 49% of the cache 
> was both pinned and dirty.

No. "Pinned" means bufHdr->refcount > 0 and you don't distinguish pinned or
recently-used (bufHdr->usage_count > 0) buffers in your patch.

!       if (bufHdr->refcount != 0 || bufHdr->usage_count != 0)
        {
!               if (skip_pinned)
!               {
!                       UnlockBufHdr(bufHdr);
!                       return BUF_PINNED;
!               }
!               buffer_write_type=BUF_WRITTEN_AND_PINNED;


Regards,
---
ITAGAKI Takahiro
NTT Open Source Software Center



---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
       subscribe-nomail command to [EMAIL PROTECTED] so that your
       message can get through to the mailing list cleanly

Reply via email to