Buffer flushing
Wm E. Davidsen Jr
davidsen at sixhub.UUCP
Fri May 4 13:07:57 AEST 1990
Most flavors of SysV and some BSD systems have a process which does a
sync from time to time, such as "update." When the kernel is configured
to have a large number of buffers the result is a slowdown in
performance for disk intensive tasks.
Many versions provide a tuning parameter which allows this to happen
more or less often, but it still happens all at once. What I would like
is a way to force or at least encourage the system to write dirty
buffers out as a idle task, so that if the CPU is available and there
are dirty buffers they are queued, but only at some faitly slow rate,
perhaps 3-5% of the buffers per second.
Obviously the best place for this is in the kernel code, but realizing
that it isn't going to go there for a number of systems, is there
another way to get this effect? I have tried having a very low priority
process which slowly reads through a very large file. This helps on some
systems, but on others the clean (read) beffers are reused rather than
write out a dirty buffer.
I also tried a process (low priority again) which does a sync every
three seconds. This works somewhat better, in that I trade a big
slowdown one a minute or so for a small slowdown all the time. Still not
satisfactory.
Okay, now how about suggestions.
--
bill davidsen - davidsen at sixhub.uucp (uunet!crdgw1!sixhub!davidsen)
sysop *IX BBS and Public Access UNIX
moderator of comp.binaries.ibm.pc and 80386 mailing list
"Stupidity, like virtue, is its own reward" -me
More information about the Comp.unix.wizards
mailing list