473,395 Members | 1,688 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,395 software developers and data experts.

how to determine the NUM_IOCLEANERS?


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
snapshots and the db/dbm cfg, and print out different values, and if a
certain threshold value is reached, some information of which parameter
that might be increased/decreased to improve perfomance. Simple Example

bp_hit_ratio = (1 - ( (bp data phys rd + bp inx phys rd) / (bp data
logic rd + pool index logical rd) ))
print bp_hit_ratio
if (bp_hit_ratio < 0.9)
print Low bp_hit_ratio. Concider increasing bufferpool size

For NUM_IOCLEANERS I have only seen rather vauge statements such as:

Increase NUM_IOCLEANERS if "Buffer pool data writes" is much bigger
than "Asynchronous pool data page writes." or if "Dirty page steal
cleaner triggers" / "Dirty page steal cleaner triggers + ..." is too
high.

I understand that it is impossible to exactly define "much bigger" or
"too high" but as a rule of thumb, when would you concider increasing
NUM_IOCLEANERS regarding "Buffer pool data writes" vs "Dirty page steal
cleaner triggers", 2 times,5 time,10 times,100 times or something
completely different. And the same goes for ratio between Dirty page
steal cleaners and Dirty page steal cleaners + Dirty page threshold
cleaner triggers + LSN Gap cleaner triggers.

Thanx in advance
/Lennart

Dec 15 '05 #1
5 6119

<le*****@kommunicera.umea.se> wrote in message
news:11*********************@z14g2000cwz.googlegro ups.com...

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
snapshots and the db/dbm cfg, and print out different values, and if a
certain threshold value is reached, some information of which parameter
that might be increased/decreased to improve perfomance. Simple Example

bp_hit_ratio = (1 - ( (bp data phys rd + bp inx phys rd) / (bp data
logic rd + pool index logical rd) ))
print bp_hit_ratio
if (bp_hit_ratio < 0.9)
print Low bp_hit_ratio. Concider increasing bufferpool size

For NUM_IOCLEANERS I have only seen rather vauge statements such as:

Increase NUM_IOCLEANERS if "Buffer pool data writes" is much bigger
than "Asynchronous pool data page writes." or if "Dirty page steal
cleaner triggers" / "Dirty page steal cleaner triggers + ..." is too
high.

I understand that it is impossible to exactly define "much bigger" or
"too high" but as a rule of thumb, when would you concider increasing
NUM_IOCLEANERS regarding "Buffer pool data writes" vs "Dirty page steal
cleaner triggers", 2 times,5 time,10 times,100 times or something
completely different. And the same goes for ratio between Dirty page
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
Dec 15 '05 #2

Matt Emmerton wrote:
<le*****@kommunicera.umea.se> wrote in message
news:11*********************@z14g2000cwz.googlegro ups.com... [...]
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.

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


Dec 16 '05 #3

Matt Emmerton wrote:
<le*****@kommunicera.umea.se> wrote in message
news:11*********************@z14g2000cwz.googlegro ups.com...
[...]
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

[...]

Dec 17 '05 #4
<le*****@kommunicera.umea.se> wrote in message
news:11**********************@z14g2000cwz.googlegr oups.com...


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.
Dec 17 '05 #5

Mark A wrote:
<le*****@kommunicera.umea.se> wrote in message
news:11**********************@z14g2000cwz.googlegr oups.com...


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

Dec 17 '05 #6

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
by: Nathan Sokalski | last post by:
I want to determine the operating system using ASP (or VBScript inside of ASP). I tried to get it using the Request. ServerVariables(EnvironmentVariable) method. On the web page about ASP in which...
3
by: Shahid Juma | last post by:
Hello All, This may be a trivial question, but I was wondering how can you determine if a value contains an Integer or Float. I know there is a function called IsNumeric, however you can't...
5
by: Hennie de Nooijer | last post by:
Hi, This is a diffcult issue to explain. I hope to make my problem clear to you. SITUATION I'm building A SLA Query for a customer. This customer has an awkward way to determine the SLA results...
3
by: lucpustjens | last post by:
Hello, I want te determine the client operating system, because I need to kno the default cookie directory. If there is a way to determine the cooki directory directly, than it is also good. ...
18
by: Christopher W. Douglas | last post by:
I am writing a VB.NET application in Visual Studio 2003. I have written a method that handles several events, such as closing a form and changing the visible status of a form. I have some code...
9
by: Adam | last post by:
Can someone please help!! I am trying to figure out what a font is? Assume I am working with a fixed font say Courier 10 point font Question 1: What does this mean 10 point font Question 2:...
7
by: semedao | last post by:
Hi all, I view many posts about this issue , the connected property does not tell us the current status of the socket. based on couple of suggestions of msdn , and some article here , I try to...
6
by: Jana | last post by:
Greetings Access Gurus! I am working on an app to send batch transactions to our bank, and the bank requires that we place an effective date on our files that is 'one business day in the future,...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.