[Asterisk-Users] real-time priority

Elwin Andriol elwin at heuveltop.nl
Thu Aug 11 05:09:41 MST 2005


Joseph wrote:

>How to list real-time priority in Linux for an application (example
>asterisk)?
>
>  
>
What do you mean with listing real-time priority? You can list process 
priorities with commands like top or "ps -eo pri,nice,%cpu,pid,args 
--sort pri" (for example).

If you're interrested in asterisk's real-time responsiveness, the 
following might be of interrest.

Real-time priority actually doesn't exist in Linux (you'll need to use a 
real RTOS for that). Still, Linux makes a destinction between processes 
that need sort of real-time response times and processes that don't. 
Controlling this in a direct way is a difficult, if possible at all. 
Prioritizing processes is done on the fly (in real time) by the 
scheduling process in the Linux core.

However, there is a way to manipulate the prioritizing of processes with 
a command called 'nice'. Normally you use this command (with a positive 
adjustment value) to make a process to behave 'nice' to other processes. 
That is, it gives the process a lower priority that it would normally 
get, thus making it a relative low priority process. By using nice with 
a negative adjustment (you'll need to be root for that), you're able to 
give a certain process a higher priority than it would normally get, 
thus giving the process more of a 'real-time' priority.

In my experience it proved to be more usefull to give all the processes, 
that stood in the way of asterisk performance, a positive nice 
adjustment, rather than giving asterisk a negative nice adjustment. I 
haven't tested this thoroughly, so I'm not sure about the reasons for 
this. It could have something to with asterisk getting in the way of 
Linux's core processes when incresing it's priority. Still, it's nothing 
more than a guess.



More information about the asterisk-users mailing list