[ Previous | Next | Table of Contents | Index | Library Home | Legal | Search ]

System Management Guide: Operating System and Devices


Chapter 11. Process Management

This chapter describes procedures that you, as the system administrator, can use to manage processes.

See Chapter 11, Process Management in the AIX 5L Version 5.1 System Management Concepts: Operating System and Devices and see also AIX 5L Version 5.1 System User's Guide: Operating System and Devices for basic information on managing your own processes; for example, restarting or stopping a process that you started or scheduling a process for a later time. The AIX 5L Version 5.1 System User's Guide: Operating System and Devices also defines terms that describe processes, such as daemons and zombies.


Process Monitoring

The ps command is the primary tool for observing the processes in the system. Most of the flags of the ps command fall into one of two categories:

The most widely useful variants of ps for system-management purposes are:

ps -ef Lists all nonkernel processes, with the userid, process ID, recent CPU usage, total CPU usage, and the command that started the process (including its parameters).
ps -fu UserID Lists all of the processes owned by UserID, with the process ID, recent CPU usage, total CPU usage, and the command that started the process (including its parameters).

To identify the current heaviest users of CPU time, you could enter:

ps -ef | egrep -v "STIME|$LOGNAME" | sort +3 -r | head -n 15

This lists, in descending order, the 15 most CPU-intensive processes other than those owned by you.

For more specialized uses, the following two tables are intended to simplify the task of choosing ps flags by summarizing the effects of the flags.

Process Listed are: Process-Specifying Flags:
-A -a -d -e -G
-g
-k -p -t -U
-u
a g t x
All processes Y - - - - - - - - - Y - -
Not processes group leaders and not associated with a terminal - Y - - - - - - - - - - -
Not process group leaders - - Y - - - - - - - - - -
Not kernel processes - - - Y - - - - - - - - -
Members of specified-process groups - - - - Y - - - - - - - -
Kernel processes - - - - - Y - - - - - - -
Those specified in process number list - - - - - - Y - - - - - -
Those associated with tty(s) in the list - - - - - - - Y
(n ttys)
- - - Y
(1 tty)
-
Specified user processes - - - - - - - - Y - - - -
Processes with terminals - - - - - - - - - Y - - -
Not associated with a tty - - - - - - - - - - - - Y

 

Column: Column-Selecting Flags:
Default1 -f -l -U
-u
Default2 e l s u v
PID Y Y Y Y Y Y Y Y Y Y
TTY Y Y Y Y Y Y Y Y Y Y
TIME Y Y Y Y Y Y Y Y Y Y
CMD Y Y Y Y Y Y Y Y Y Y
USER - Y - - - - - - Y -
UID - - Y Y - - Y - - -
PPID - Y Y - - - Y - - -
C - Y Y - - - Y - - -
STIME - Y - - - - - - Y -
F - - Y - - - - - - -
S/STAT - - Y - Y Y Y Y Y Y
PIR - - Y - - - Y - - -
NI/NICE - - Y - - - Y - - -
ADDR - - Y - - - Y - - -
SZ/SIZE - - Y - - - Y - Y Y
WCHAN - - Y - - - Y - - -
RSS - - - - - - Y - Y Y
SSIZ - - - - - - - Y - -
%CPU - - - - - - - - Y Y
%MEM - - - - - - - - Y Y
PGIN - - - - - - - - - Y
LIM - - - - - - - - - Y
TSIZ - - - - - - - - - Y
TRS - - - - - - - - - Y
Environment
(following the command)
- - - - - Y - - - -

If ps is given with no flags or with a process-specifying flag that begins with a minus sign, the columns displayed are those shown for Default1. If the command is given with a process-specifying flag that does not begin with minus, Default2 columns are displayed. The -u or -U flag is both a process-specifying and column-selecting flag.

The following are brief descriptions of the contents of the columns:

PID Process ID
TTY Terminal or pseudo-terminal associated with the process
TIME Cumulative CPU time consumed, in minutes and seconds
CMD Command the process is running
USER Login name of the user to whom the process belongs
UID Numeric user ID of the user to whom the process belongs
PPID ID of the parent process of this process
C Recently used CPU time
STIME Time the process started, if less than 24 hours. Otherwise the date the process is started
F Eight-character hexadecimal value describing the flags associated with the process (see the detailed description of the ps command)
S/STAT Status of the process (see the detailed description of the ps command)
PRI Current priority value of the process
NI/NICE Nice value for the process
ADDR Segment number of the process stack
SZ/SIZE Number of working-segment pages that have been touched times 4
WCHAN Event on which the process is waiting
RSS Sum of the numbers of working-segment and code-segment pages in memory times 4
SSIZ Size of the kernel stack
%CPU Percentage of time since the process started that it was using the CPU
%MEM Nominally, the percentage of real memory being used by the process, this measure does not correlate with any other memory statistics
PGIN Number of page ins caused by page faults. Since all I/O is classified as page faults, this is basically a measure of I/O volume
LIM Always xx
TSIZ Size of the text section of the executable file
TRS Number of code-segment pages times 4
Environment Value of all the environment variables for the process

Altering Process-Priority

Basically, if you have identified a process that is using too much CPU time, you can reduce its effective priority by increasing its nice value with the renice command. For example:

renice +5 ProcID

The nice value of the ProcID's would increase process from the normal 20 of a foreground process to 25. You must have root authority to reset the process ProcID's nice value to 20. Type:

renice -5 ProcID

Terminating a Process

Use the kill command to end a process. The kill command sends a signal to the designated process. Depending on the type of signal and the nature of the program that is running in the process, the process might end or might keep running. The signals you send are:

SIGTERM (signal 15) is a request to the program to terminate. If the program has a signal handler for SIGTERM that does not actually terminate the application, this kill may have no effect. This is the default signal sent by kill.
SIGKILL (signal 9) is a directive to kill the process immediately. This signal cannot be caught or ignored.

Normally, it is desirable to issue SIGTERM rather than SIGKILL. If the program has a handler for SIGTERM, it can clean up and terminate in an orderly fashion. Type:

kill -term ProcessID

(The -term could be omitted.) If the process does not respond to the SIGTERM, type:

kill -kill ProcessID

Binding or Unbinding a Process

On multiprocessor systems, you can bind a process to a processor or unbind a previously bound process from:

Prerequisites

You must have root user authority to bind or unbind a process you do not own.

Binding or Unbinding a Process Tasks
Task SMIT Fast Path Command or File
Binding a Process smit bindproc bindprocessor -q
Unbinding a Process smit ubindproc bindprocessor -u


[ Previous | Next | Table of Contents | Index | Library Home | Legal | Search ]