> I'm trying to put together a simple util that will help me during
> performance tuning, It will grab a bunch of values from different
[quoted text clipped - 22 lines]
> steal cleaners and Dirty page steal cleaners + Dirty page threshold
> cleaner triggers + LSN Gap cleaner triggers.
It's difficult to get a good metric by comparing pages vs triggers (or
triggers vs triggers), because the work done each time the cleaners are
triggered may vary, and also varies by the type of trigger.
Since each type of trigger makes the page cleaners do different work, each
trigger has a different benefit to the system. Generally, from highest to
lowest benefit, the triggers are LSN Gap, dirty page steal, dirty page
thresh.
Thus, you should first focus on tuning NUM_IOCLEANERS until the number of
LSN gap triggers reaches a plateau. Note that increasing SOFTMAX will
generally reduce the number of LSN gap triggers, and vice versa.
You should find that once these triggers are under control, the other two
types of triggers will also be reduced. If you want to further reduce the
number of dirty page thresh triggers, play with CHNGPGS_THRESH.
If you're running v8 FP4 or later, and don't want to deal with tuning the
cleaners, considering our "alternate" (self-tuning) page cleaning algorithm.
It can be enabled by running "db2set DB2_USE_ALTERNATE_PAGE_CLEANING=ON".
The rule of thumb in this case is to set NUM_IOCLEANERS = number_of_cpus.
If you've got HyperThreading or SMT enabled, then any value in the range
[number_of_cpus .. number_of_cpus * 2 ] is reasonable.
--
Matt Emmerton
lennart@kommunicera.umea.se - 16 Dec 2005 07:39 GMT
[...]
> It's difficult to get a good metric by comparing pages vs triggers (or
> triggers vs triggers), because the work done each time the cleaners are
[quoted text clipped - 19 lines]
> If you've got HyperThreading or SMT enabled, then any value in the range
> [number_of_cpus .. number_of_cpus * 2 ] is reasonable.
Thanx a lot Matt. I realize it is not that simple to determine this,
and that is probably why every article I have seen uses words like
"much bigger" etc. Anyhow, your explanation above gave me some ideas
and since I'm, on FP9 I will certainly try
DB2_USE_ALTERNATE_PAGE_CLEANING. Once again thanx a lot
/Lennart
> --
> Matt Emmerton
lennart@kommunicera.umea.se - 17 Dec 2005 08:17 GMT
[...]
> If you're running v8 FP4 or later, and don't want to deal with tuning the
> cleaners, considering our "alternate" (self-tuning) page cleaning algorithm.
> It can be enabled by running "db2set DB2_USE_ALTERNATE_PAGE_CLEANING=ON".
> The rule of thumb in this case is to set NUM_IOCLEANERS = number_of_cpus.
> If you've got HyperThreading or SMT enabled, then any value in the range
> [number_of_cpus .. number_of_cpus * 2 ] is reasonable.
Just checking, inorder to use DB2_USE_ALTERNATE_PAGE_CLEANING=ON on
Linux I have to have a 2.6 kernel?
/Lennart
[...]
Mark A - 17 Dec 2005 15:44 GMT
> Just checking, inorder to use DB2_USE_ALTERNATE_PAGE_CLEANING=ON on
> Linux I have to have a 2.6 kernel?
>
> /Lennart
No, it works with all flavors of DB2 for LUW.
lennart@kommunicera.umea.se - 17 Dec 2005 19:56 GMT
> > Just checking, inorder to use DB2_USE_ALTERNATE_PAGE_CLEANING=ON on
> > Linux I have to have a 2.6 kernel?
> >
> > /Lennart
>
> No, it works with all flavors of DB2 for LUW.
Thanx, then I'll start playing with it right away
/Lennart