Date: Sat, 28 Feb 2004 06:28:24 +0100 From: Erik Trulsson <ertr1013@student.uu.se> To: Zhang Weiwu <zhangweiwu@realss.com> Cc: questions@freebsd.org Subject: Re: scheduling priority not working? Message-ID: <20040228052824.GA76835@falcon.midgard.homeip.net> In-Reply-To: <404021DB.6070009@realss.com> References: <Law11-F55YR6CsSTJUj00012ecb@hotmail.com> <20040228035629.GA66561@falcon.midgard.homeip.net> <404021DB.6070009@realss.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Feb 28, 2004 at 01:06:35PM +0800, Zhang Weiwu wrote: > Erik Trulsson wrote: > > >On Sat, Feb 28, 2004 at 11:37:51AM +0800, Zhang Weiwu wrote: > > > > > >>Hello. I thought scheduling priority is the kind of absolute priority, > >>that is only when the higher priority process don't ask for resource, can > >>the lower priority process gets resource. If the higher priority process > >>sucks, the lower priority process starvs. > >> > >>Now I have a old Pentium-mmx 166 box, running mpg321 fine. I wish to > >>listen to music when recompile the kernel, so turn on the music, do: > >>#nice make; > >>I thought "nice make" use the resouce mpg321 left to it, but actually the > >>music process is seriously disturbed, it begins to sound like .... > >>terrible. > >> > >>So I don't realy understand the scheduling priority mechnism in FreeBSD? > >> > >> > > > >No, you dont quite understand the scheduling. > >There are actually two different priorities that influence scheduling. > >If you look at the output from top(1) you can see them in the columns > >labeled 'PRI' and 'NICE'. The first one ('PRI') is the one that is > >actually used to determine when a process gets to run. This is > >dynamically adjusted by the system to make sure that all processes get > >at least *some* CPU-time (so no process can be completely starved.) The > >second ('NICE') is what is changed by the nice/renice commands and > >affects how the actual priority is changed by the system. (Processes > >with a high nice-value essentially gets their priority raised slowly > >and lowered quickly .) > > > > > I don't understand. I watched top(1) for some time, it seems the mpg321 > process, having NICE=-20, keep constant PRI of 108~110, but other > processes like 'yacc', 'cc', although running at NICE=4, comes out even > at PRI=120, and almost keep that high until it finish its work in > several seconds and quit, meanwhile the speaker keep producing broken > music. If NICE=-20 processes cannot have more PRI than NICE=4, what's > the use of NICE? Try comparing two CPU-hungry processes that both run for a long time and you will see the difference. Processes which do a lot of I/O and don't use much CPU tends to get fairly high priority. Processes also tend to start with relatively high priority so a short-lived process will not have had time to get its priority adjusted much regardless of its nice-level. > > >I run at a very similar box, but use mpg123 rather than mpg321, and I > >can play music without significant disturbance. > >You might wish to try mpg123 instead, in my experience it needs less > >CPU-power than mpg321. > > > > > My mpg123 hangs after copyright notice. It's another story though. > > >You could also try using a higher nice value for the make process. (i.e > >run it with 'nice -19 make' or something like that.) > > > > > I tried 'nice -n 19 make' which gives 'badly formed number' error. 'nice > -19 make' made 'make' even greedy. Let me guess: You are using [t]csh as your shell, right? That has 'nice' as a built-in command with a slightly different syntax than /usr/bin/nice (which is what is documented in the nice(1) manpage) -- <Insert your favourite quote here.> Erik Trulsson ertr1013@student.uu.se
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040228052824.GA76835>