[ Previous | Next | Contents | Glossary | Home | Search ]
AIX Version 4.3 System Management Guide: Operating System and Devices

Chapter 12. Process Management

The process is the entity that the operating system uses to control the use of system resources. AIX Version 4 introduces the use of threads to control processor-time consumption, but most of the system management tools still require the administrator to refer to the process in which a thread is running, rather than to the thread itself.

See the 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 System User's Guide also defines terms that describe processes, such as daemons and zombies.

This chapter describes processes and the tools that the operating system provides to manage processes from the perspective of the system administrator rather than the general user.

AIX contains tools to:

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 will list, 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 this process's parent process.
C Recently used CPU time.
STIME Time the process started, if today. Otherwise the date the process 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 AIX 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.

Process-Priority Alteration

For a detailed discussion of process-priority alteration, see "Controlling Contention for the CPU" in AIX Versions 3.2 and 4 Performance Tuning Guide. 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 renice. 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. To reset process ProcID's nice value to 20, you would have to be root and enter:

renice -5 ProcID

Process Termination

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 may end or may keep running. The signals you would 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. You would issue:

kill -term ProcessID

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

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:

Prerequisite

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

Binding or Unbinding a Process Tasks
Web-based System Manager:    wsm processes fast path
(Processes application)

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

[ Previous | Next | Contents | Glossary | Home | Search ]