davidsen@sixhub.UUCP (Wm E. Davidsen Jr) (05/04/90)
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@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