Number of LRUs, Cleaners & Buffers
Posted in 2000
Topics: Performance & Tuning, Logging & Checkpoints
I'm running informix 7.30 UC6 on a 4cpu Server (the engine is db- and app-server, 3 cpus are affinated, AFF_NPROCS=3), acutally I have 8 LRU-Queues and 4 cleaners. In a statement from Art S.Kagel I read that "If bufwaits exceeds 7% of (pagreads + bufwrits) you are probably suffering from LRU contention, if >10% you are in LRU contention HELL! " I checked this on my engine an had to realise that my bufwaits exceeded 10% of (pagreads + buffwrites) by far. Then I changed my MAX_LRU_DIRTY/MIN_LRU_DIRTY from 60/50 to 10/5. Thus the bufwaits sank to some 8%, checkpoint duration sank but is still high. In order to improve performance I'm planning to increase the number of LRUs but Informix Admin Guide recommends that in multiprocessor engines the number of LRUs should equal the number of cpu VPs. Additionally it recommends that you should configure for every LRU queue a cleaner and that the number of cleaners should be the same as the number of frequently used disks (I'm using AutoRaid striped over 8 disks). In some statements of the iiug I read that these recommandations are not to be taken too seriously, the only thing I should take care of is that the number of cleaners and LRUs are the same. What do you think about that? The numbers for read cache and write cache are 98.66% and 94.94% - are these values o.k. or should I increase the number of buffers, too? thanx for any help thomas ------------------------------------------------- Thomas Stainer - tstainer@styria.com
i'd say the pct numbers look good. i dont think there is any reason to use affinity unless you are auditing and can only charge by the cpu. remember to change only one thing at a time, and to have a goal for your tuning. if 2 sec checkpoint time is acceptable to users, then forgot about trying to fix it. but i would look into your seq scans , analyze the sql ... Thomas Stainer wrote: > I'm running informix 7.30 UC6 on a 4cpu Server (the engine is db- and > app-server, 3 cpus are affinated, AFF_NPROCS=3), acutally I have 8 > LRU-Queues and 4 cleaners. In a statement from Art S.Kagel I read that > "If bufwaits exceeds 7% of (pagreads + bufwrits) you are probably > suffering > from LRU contention, if >10% you are in LRU contention HELL! " > I checked this on my engine an had to realise that my bufwaits exceeded > 10% of (pagreads + buffwrites) by far. Then I changed my > MAX_LRU_DIRTY/MIN_LRU_DIRTY from 60/50 to 10/5. Thus the bufwaits sank > to some 8%, checkpoint duration sank but is still high. > > In order to improve performance I'm planning to increase the number of > LRUs but Informix Admin Guide recommends that in multiprocessor engines > the number of LRUs should equal the number of cpu VPs. Additionally it > recommends that you should configure for every LRU queue a cleaner and > that the number of cleaners should be the same as the number of > frequently used disks (I'm using AutoRaid striped over 8 disks). In some > statements of the iiug I read that these recommandations are not to be > taken too seriously, the only thing I should take care of is that the > number of cleaners and LRUs are the same. What do you think about that? > > The numbers for read cache and write cache are 98.66% and 94.94% - are > these values o.k. or should I increase the number of buffers, too? > > thanx for any help > > thomas > ------------------------------------------------- > Thomas Stainer - tstainer@styria.com
In article <394A3B61.B8818F70@styria.com>, Thomas Stainer
<tstainer@styria.com> writes
>I'm running informix 7.30 UC6 on a 4cpu Server (the engine is db- and
Which platform, sun, HP, AIX, NCR??
>app-server, 3 cpus are affinated, AFF_NPROCS=3), acutally I have 8
>LRU-Queues and 4 cleaners. In a statement from Art S.Kagel I read that
>"If bufwaits exceeds 7% of (pagreads + bufwrits) you are probably
>suffering
>from LRU contention, if >10% you are in LRU contention HELL! "
>I checked this on my engine an had to realise that my bufwaits exceeded
>10% of (pagreads + buffwrites) by far. Then I changed my
>MAX_LRU_DIRTY/MIN_LRU_DIRTY from 60/50 to 10/5. Thus the bufwaits sank
>to some 8%, checkpoint duration sank but is still high.
>
>In order to improve performance I'm planning to increase the number of
>LRUs but Informix Admin Guide recommends that in multiprocessor engines
>the number of LRUs should equal the number of cpu VPs. Additionally it
From the Informix Dynamic Server Performance Guide 7.3, Feb 1998.
Page 3-68
LRUS, LRU_MAX_DIRTY, and LRU_MIN_DIRTY
end of first paragraph
"Informix suggests that you set the LRUS parameter to a minimum of 4.
^^^^^^^
For multiprocessor systems, set the LRUS parameter to a minimum of 4
^^^^^^^
or NUMCPUVPS, whichever is greater."
****THIS IS JUST A STARTING POINT*******
Last paragraph on the page
"To monitor the percentage of dirty pages in LRU queues, use onstat -
R. When the number of dirty pages consistently exceeds the
LRU_MAX_DIRTY limit, you have too few LRU queues or too few page
cleaners. First, use the LRUS parameter to increase the number of LRU
queues. If the percentage of dirty pages still exceeds LRU_MAX_DIRTY,
use the CLEANERS parameter to increase the number of page cleaners."
I have found good results with 127 LRUS and 48 CLEANERS even on dual
processor machine. This however will be enviroment and application
specific.
Try 127 LRUS, 127 CLEANERS and use onstat -u before and after.
The page cleaners get listed at the start of the onstat -u output.
Check how many are idle (onstat -u figures all 0) at a peak I/O
time and reduce as neeed.
>recommends that you should configure for every LRU queue a cleaner and
>that the number of cleaners should be the same as the number of
>frequently used disks (I'm using AutoRaid striped over 8 disks). In some
>statements of the iiug I read that these recommandations are not to be
>taken too seriously, the only thing I should take care of is that the
>number of cleaners and LRUs are the same. What do you think about that?
>
>The numbers for read cache and write cache are 98.66% and 94.94% - are
>these values o.k. or should I increase the number of buffers, too?
>
>thanx for any help
>
>thomas
>-------------------------------------------------
>Thomas Stainer - tstainer@styria.com
>
--
David Williams
David, Is your tip valid for a single processor, 1 SCSI disk, 128 Ram and 25 users ? I haven't found many tips about simple boxs ... As well #CLEANERS = #LRUs ? I have checkpoints of 2,3,6 seconds but sometimes over 40 !! Manel On Sun, 18 Jun 2000 15:39:30 +0100, David Williams <djw@smooth1.demon.co.uk> wrote: ...
In article <3953f81e.11863848@news.bcn.ttd.net>, Manel Falcó
<manel@semic.es> writes
>David, Is your tip valid for a single processor, 1 SCSI disk, 128 Ram
>and 25 users ? I haven't found many tips about simple boxs ...
>
Yes, also I tend to use
LRU_MIN_DIRTY = 1Mb of buffers
LRU_MAX_DIRTY = 2Mb of buffers
which allows good write caching...
>As well #CLEANERS = #LRUs ?
>
>I have checkpoints of 2,3,6 seconds but sometimes over 40 !!
>
>Manel
>
>On Sun, 18 Jun 2000 15:39:30 +0100, David Williams
><djw@smooth1.demon.co.uk> wrote:
>
>...
--
David Williams