On Sun, 10 Oct 2010 23:17:37 +0400 Dmitry-T <dmitr...@yandex.ru> wrote:
> My test OpenBSD: > > load from livecd bsdanywhere46-amd64 > > in different consoles: > > dd if=/dev/wd0c of=/dev/null bs=1m > dd if=/dev/wd0c of=/dev/null bs=1m > dd if=/dev/wd0c of=/dev/null bs=1m > iostat > top > > run: > dd if=/dev/urandom of=/dev/null > and disk read speed jump from 22Mb/s to 0.9Mb/s! > > renice 20 for last dd - throughput not change! > renice -20 for first three dd - throughput not change! > For check renice, run renice -20 for last dd - OpenBSD froze, even mouse. > > It is not secure. One script or program may load CPU and > database or another servers lost speed in disk operations. > > In Linux (test on 2.6.35 libre) renice work correct... > Why renice not work in OpenBSD? > > -- > Dmitry Telegin > I have to admit that I was in the middle of a problem when I looked at this, and got the wrong end of the stick (which process was at -20). The email with the subject "insecure scheduler in OpenBSD 4.7" was a much better description. Sorry for that Dmitry. However I do think you would have had a better response if you had said something like OpenBSDs service level gurantee is not as good with regard to disk throughput than repeating openbsd isn't secure. However I'm not sure that this is even the case as I have been unable to repeat this problem on i386 without setting the normal user urandom process to -20, at -5 for example it only uses 50% and the disks stay the same. When all 4 are at 0 they have around 25% cpu each and throughput is not affected. Could this be an issue only for amd64? and possibly other architectures? This test was done with vmplayer as it was quickest to run the test on. Actually I've just noticed, for some reason the dd if=/dev/wd0c of=/dev/null on it's own wants 100% cpu, so probably vmplayer is an unfair test. Does the sheduler scale each process to a percentage of what it wants or calls made? i.e 4 processes wanting 100% to 25% each when they're all at the same nice level. The interrupt is around 20% using wd0c and 5% using rwd0c.