Subject Re: [firebird-support] Process Priority Level
Author Helen Borrie
At 03:17 AM 21/02/2007, you wrote:
>Does anyone know what 'ProcessPriorityLevel' does within the firebird
>configuration file?
>
>I understand you can set its value to a positive number.
>
>But no guidance is given to what the number should be.

It applies only to Windows and it's a can of worms. See
http://msdn2.microsoft.com/en-us/library/ms685100.aspx

It's a base setting only: the priority at which the process
starts. Processes change priority constantly as they move up and
down the scheduling queue. A process will get a slice of CPU if
there are no higher priority processes waiting in the queue at the
time the slice becomes available.

If trying it out, bear in mind that Firebird's default setting of
zero is equivalent to "Normal", which is 8 in Windows terms. The
Windows scale on 32-bit systems ranges from RealTime (24) down to 4
(Low) for Priority Level and 31 down to ?? for priority
class. AFAIU, the scale that Firebird uses is based on a combination
of both the class and the level.

>Should I put 1000000 or 5 or 54 ?

One thing you could do is draw a graph of the three scales to work
out the correspondences; then (in the lab) play about with setting
the priorities during run-time using Task Manager. From what I can
tell, boosting the priority to more than 5 (13 in Windows terms) is
likely to bring your system to a standstill.

>No guidance is given to what the effect of providing a positive number
>will do and how high that number should be.

That's true. It's not very encouraging, which is what makes it as
useful as it could be. By this I mean it is totally specific to the
Windows environment you are running. There are no "recommended numbers".

I believe it was implemented back in 16-bit Windows time, when it was
(comparatively) easier to know the relative priorities of running
processes and recognise the effects of altering the base
priority. That said, I've never heard of anyone who succeeded in
influencing how a 32-bit Windows apportions CPU time in any way that
dramatically affected performance...if you manage to do it, a report
on your tests would be most welcome.

./heLen