Skip to Content

Greetings fellow DBAs,

I am trying to reduce the ‘Buffers Washed Dirty’ for my system’s default data cache  (as seen in sp_sysmon: Data Cache Management->cache: Default Data Cache->Buffer Wash Behavior section). 

I have varied the wash sizes in my 2K, 4K, and 16K pools with inconsistent results.  Is there a way to determine which pool requires a bigger wash setting?

Thanks!

Doug

To report this post you need to login first.

2 Comments

You must be Logged on to comment or reply to a post.

  1. Jeff Tallman

    Probably should be a question vs. a blog…..but modified buffers will be washed dirty unless:

    • Checkpoint flushed it first
    • HK Wash flushed it first

    I prefer to size the buffer pools according to how much gets used – see monCachePool – PagesTouched vs. AllocatedKB (convert to pages)….taking into consideration any cache volatility which suggests cache may be too small.    Buffers washed dirty are not necessarily a bad thing unless you start seeing cache stalls.   However, if you prefer to avoid them, increasing the HK free write percent might be a good place to start – I like to start it off at about 10%.    If the wash marker isn’t at the default, you might want to consider decreasing the wash marker back to the default to give HK & Checkpoint more time to write it before it hits wash.   I don’t suggest a wash marker below the defaults as it could lead to cache stalls.

    (0) 
    1. Doug Johnson Post author

      Great advise as usual Jeff!  I had reduced the 16K wash until I got stalls and then I brought reversed the changes.  You could be appalled but I had already taken the free write percent to 40%!  I am running the sp_sysmon over many checkpoints so I suspect the remaining dirty buffers are the remainder from the last checkpoint so its sounds like I should be comfortable with what remains….  Using monCachePool is very interesting for ‘guesstimating’ what is the best wash size.  I will keep you posted.  Thanks!

      (0) 

Leave a Reply