SCHED_ULE should not be the default
Alexander Best
arundel at freebsd.org
Sun Dec 18 10:26:00 UTC 2011
On Sun Dec 18 11, Alexander Best wrote:
> On Sun Dec 18 11, Andrey Chernov wrote:
> > On Sun, Dec 18, 2011 at 05:51:47PM +1100, Ian Smith wrote:
> > > On Sun, 18 Dec 2011 02:37:52 +0000, Bruce Cran wrote:
> > > > On 13/12/2011 09:00, Andrey Chernov wrote:
> > > > > I observe ULE interactivity slowness even on single core machine (Pentium
> > > > > 4) in very visible places, like 'ps ax' output stucks in the middle by ~1
> > > > > second. When I switch back to SHED_4BSD, all slowness is gone.
> > > >
> > > > I'm also seeing problems with ULE on a dual-socket quad-core Xeon machine
> > > > with 16 logical CPUs. If I run "tar xf somefile.tar" and "make -j16
> > > > buildworld" then logging into another console can take several seconds.
> > > > Sometimes even the "Password:" prompt can take a couple of seconds to appear
> > > > after typing my username.
> > >
> > > I'd resigned myself to expecting this sort of behaviour as 'normal' on
> > > my single core 1133MHz PIII-M. As a reproducable data point, running
> > > 'dd if=/dev/random of=/dev/null' in one konsole, specifically to heat
> > > the CPU while testing my manual fan control script, hogs it up pretty
> > > much while regularly running the script below in another konsole to
> > > check values - which often gets stuck half way, occasionally pausing
> > > _twice_ before finishing. Switching back to the first konsole (on
> > > another desktop) to kill the dd can also take a couple/few seconds.
> >
> > This issue not about slow machine under load, because the same
> > slow machine under exact the same load, but with SCHED_4BSD is very fast
> > to response interactively.
> >
> > I think we should not misinterpret interactivity with speed. I see no big
> > speed (i.e. compilation time) differences, switching schedulers, but see
> > big _interactivity_ difference. ULE in general tends to underestimate
> > interactive processes in favour of background ones. It perhaps helps to
> > compilation, but looks like slowpoke OS from the interactive user
> > experience.
>
> +1
>
> i've also experienced issues with ULE and performed several tests to compare
> it to the historical 4BSD scheduler. the difference between the two does *not*
> seem to be speed (at least not a huge difference), but interactivity.
>
> one of the tests i performed was the following
>
> ttyv0: untar a *huge* (+10G) archive
> ttyv1: after ~ 30 seconds of untaring do 'ls -la $direcory', where directory
> contains a lot of files. i used "direcory = /var/db/portsnap", because
s/portsnap/portsnap\/files/
> that directory contains 23117 files on my machine.
>
> measuring 'ls -la $direcory' via time(1) revealed that SCHED_ULE takes > 15
> seconds, whereas SCHED_4BSD only takes ~ 3-5 seconds. i think the issue is io.
> io operations usually get a high priority, because statistics have shown that
> - unlike computational tasks - io intensive tasks only run for a small fraction
> of time and then exit: read data -> change data -> writeback data.
>
> so SCHED_ULE might take these statistics too literaly and gives tasks like
> bsdtar(1) (in my case) too many ressources, so other tasks which require io are
> struggling to get some ressources assigned to them (ls(1) in my case).
>
> of course SCHED_4BSD isn't perfect, too. try using it and run the stress2
> testsuite. your whole system will grind to a halt. mouse input drops below
> 1 HZ. even after killing all the stress2 tests, it will take a few minutes
> after the system becomes snappy again.
>
> cheers.
> alex
>
> >
> > --
> > http://ache.vniz.net/
More information about the freebsd-performance
mailing list