Re: chekcpoints, BUFFER settings, and optimization
Posted in 1997
David Williams wrote:
>
> In article <66madi$osk@cssun.mathcs.emory.edu>, Serafim Fonseca
> <inf@dpx20.growela.pt> writes
> >} In article <881611278.1353908229@dejanews.com>,
> >} jneugebauer@ameritrade.com writes
> >[...]
> >David Williams writes
> >[...]
> >} ># Shared Memory Parameters
> >} >LOCKS 100000 # Maximum number of locks BUFFERS 5000 # Maximum number
> >} BUFFERS 5000!!
> >} Run onstat -b and look at the last line it will end in page size
> >} either 2048 bytes or 4096 bytes (2 or 4K).
> >} I would up BUFFERS by 100Mb and run sar -p 1 1 / sar -q 1 1
> >} make sure you are not getting paging/swapping. Keep on increasing
> >} by 100Mb unti paging starts then set it to the highest value which
> >} has no paging.
> >} Run onstat -g ath. Are there kaio threads running. If so set
> >} NUMAIOVPS=1. Otherwise increase NUMAIOVPS to the number of disks you
> >} have (up to 32).
> >} Set cleaners = 6 (same as NUMCPUVPS). Page cleaner threads only queue
> >} i/o (pass it to kaio threads or AIO VPs) they do not actually do the
> >} I/O.
> >Is this a rule? To have the same number of cleaners as the number of
> >NUMCPUVPS.
> >My machine has 1 NUMCPUVPS and I've CLEANERS=8 should I change that?
> Yes, cleaners threads run on cpu vps. Hence with 1 CPU VP only 1 can
> be active at any one time. More than 1 is a waste of time.
David Williams
Dave I have to disagree. I agree that additional cleaners are of
limited use during normal LRU writes but they are needed for fastest
checkpointing. Since at checkpoint time each chunk is assigned to
another cleaner thread until the threads are exhausted, and since that
one thread, as has already been pointed out, is only scheduling the
actual I/Os with either the AIO VPs or KAIO VPs, that thread will block
on each I/O that it schedules and single thread writes to your disks.
You must have multiple cleaners, even with a single CPU VP, since the
other cleaners can wake and schedule the I/Os that they are responsible
for while the first cleaner is blocked waiting for I/O service.
Because of the asynchronous I/O of ODS the old OL5.xx recommendation of
one cleaner per LRU is overkill. But one cleaner for each 2-3 LRU
queues is probably just about right, no matter how many or how few CPU
VPs you have available. This will ensure that your checkpoints are not
bottlenecked by single threaded I/O.
Art S. Kagel