Subject | RE: [IB-Architect] trouble with sweep |
---|---|
Author | pschmidt@interlog.com |
Post date | 2002-10-19T12:29:54Z |
On 18 Oct 2002 at 17:10, Leyne, Sean wrote:
sweep will take place and force the issue, and when that happens CPU utilization
shoots up to 110% and it gets slower then a Citroen 2CV trying to pull a fully loaded
transport trailer :-) Part of this, is that you need a good definition of idleness, at
what level of load, can we afford to give the GC thread a few cycles, and when can
we not afford to.
For example, the system keeps a counter of the page reads and writes, and every
30 seconds it divides the total by 30, giving the read/writes per second, it then
clears the counter. If this number is below a certain user definable number say 50,
then it can give the GC thread a higher priority, if the number is above another
number, say 100 then it give it a low priority, if it's between the 2 numbers, it has the
same priority as the worker threads.
> I'm not so sure that the design/idea of the GC thread is such a badI think a bigger problem is not so much garbage collection, but that eventually a
> idea. It seems reasonable that the server idle time should be used to
> perform and valuable task -- clean pages is a 'good thing', in favour of
> improving the speed or readers and writers.
>
> The problem obviously comes when the server is so busy that the idle
> time is limited and the list of dirty pages gets bigger and bigger.
>
sweep will take place and force the issue, and when that happens CPU utilization
shoots up to 110% and it gets slower then a Citroen 2CV trying to pull a fully loaded
transport trailer :-) Part of this, is that you need a good definition of idleness, at
what level of load, can we afford to give the GC thread a few cycles, and when can
we not afford to.
For example, the system keeps a counter of the page reads and writes, and every
30 seconds it divides the total by 30, giving the read/writes per second, it then
clears the counter. If this number is below a certain user definable number say 50,
then it can give the GC thread a higher priority, if the number is above another
number, say 100 then it give it a low priority, if it's between the 2 numbers, it has the
same priority as the worker threads.