Consultor Eletrônico



Kbase P15103: Can the priority of Progress processes be increased?
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   25/09/2007
Status: Verified

GOAL:

UNIX Process priorities and How Progress uses them

GOAL:

How to limit the Progress usage of CPU

GOAL:

Can the priority of Progress processes be increased?

GOAL:

Should I nice a Progress process?

GOAL:

What is the nice command?

GOAL:

Should the nice command be used to give Progress processes a higher priority?

FACT(s) (Environment):

UNIX

FIX:

This solution is to provide insight into what a process priority is and how Progress uses a processes priority. There are also possible dangers of interfering with the UNIX delegation of process priorities. The process priority is the fourth field from the left of a ps -ef listing grepped for a particular user or process id (PID).

Example:

ps -ef|grep user1
user1 27715 27714 0 09:39:42 ttyp6 0:00 -sh
user1 27732 27731 6 09:40:01 ttyp6 0:00 ps -ef
user1 27696 27695 0 09:26:08 ttyp1 0:00 -sh
user1 27731 27715 1 09:40:01 ttyp6 0:00 grep user1
user1 26877 1 0 Aug 14 ? 0:00 /usr1/dlc/bin/_mprosrv db1

In this example, the fourth field is the process priority number. Here you can see that the ps process and the grep process get high priority numbers. Typical user processes, such as user1 in the example, tend to get higher priority numbers resulting in less CPU time. The _mprosrv has a very low priority number. The lower priority number results in more processing time by the CPU. Progress typically reserves these low priority numbers for high priority processes, and root typically receives 0 or 1 as priority.

Use of the UNIX nice command can result in more or less process time from the CPU depending upon the priority issued with the nice command.

The UNIX nice command is defined in the HP-UX Operating System man page as:

COMMAND
nice - run a command at nondefault priority
DESCRIPTION
The nice command executes command at a nondefault CPU scheduling
priority. (The name is derived from being "nice" to other system
users by running large programs at lower priority.)

PROCESS PRIORITIES
All processes have an associated system nice value which is used to
compute the instantaneous-priority of the process when it is scheduled
to run. Normally, all processes inherit the system nice value of
their parent process when they are spawned. The shell (sh, csh, ksh,
etc.) can create a child process with a different priority from the
current shell process by spawning the child process via the nice
command. If the priority_change value is unsigned (positive), the
child process is nicer (lower in priority) relative to the parent. If
the priority_change value is negative, the child process runs at a
higher priority with a greater share of available system resources.
To spawn a higher priority child process, the parent process must be
owned by a user who has the appropriate privileges.

Manipulation of process priorities can result in contention situations as well as performance degradation.

The nice command is NOT recommended or supported for the altering of Progress process priorities.