Consultor Eletrônico



Kbase 20365: HP-UX 11 Configurable Process Management Parameters
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   16/10/2008
Status: Unverified

GOAL:

HP-UX 11 Configurable Process Management Parameters

FACT(s) (Environment):

HP-UX 11 32-bit
HP-UX 11 64-bit

FIX:

WARNING: Changing kernel parameters to improper or inappropriate values or combinations of values can cause data loss, system panics, or other (possibly very obscure and/or difficult to diagnose) operating anomalies, depending on which parameters are set to what values.

Before you alter the value of any configurable kernel parameter, be sure you know the implications of making the change. Many parameters interact, and their values must be selected in a balanced manner.

Settings recommended by Progress are for Progress applications. The values required by Progress must be added to the current kernel parameter values. In other words these recommendations do not take into account the requirement of UNIX operating system and/or any other application that uses shared memory and semaphores.

Process management includes:

Managing the number of processes on the system and processes per user to keep system resources effectively distributed among users for optimal overall system operation.

Managing allocation of CPU time to competing processes at equal and different priority levels.

Allocation of virtual memory between processes, protecting the system and competing users against unreasonable demands of abusive or runaway processes.

Process requirements on individual systems can vary widely. For example, it is not uncommon for a modest workstation running a VUE or Motif environment to have more than 100 simultaneous processes supporting a lone system user. On the other hand, a large, multi-user system could have 1000 simple ASCII user terminals connected to it, each running only two or three specialized processes.

Obviously, the process limits imposed on the system by the kernel must be quite different for these two common examples. Two configurable parameters apply specifically to managing system processes are:

- nproc

This defines the maximum number of processes that can run simultaneously on the entire system at any time, including remote execution processes initiated by other systems via remsh or other networking commands.

Select a value for nproc that is sufficient to provide enough processes for every user at any given time when the maximum normal number of users are logged in:

   Minimum = 10
    Maximum = Memory limited
- maxuprc

This defines the maximum number of processes that any single user can run at the same time, including login shells, user interface processes, running programs and child processes, I/O processes, etc.

If a user uses multiple, simultaneous logins under the same login name (user ID) as is common in X-window, VUE, or Motif environments, all processes are combined, even though they may belong to separate process groups.

Processes that detach from their parent process group (where it is possible) are not counted after they detach (line printer spooler jobs, certain specialized applications, etc.).

Select a value for maxuprc that is adequate to meet the normal needs of all system users, but low enough to prevent a runaway program from spawning too many processes (thus preventing or restricting new-process availability to other users), and to protect normal users from malicious system abuse by any other user:

   Minimum = 3
    Maximum = nproc - 4
    Default = 50

On large systems with multiple processors, parts of processes sometimes can be split into threads and run simultaneously on separate processors. Two kernel parameters help manage the consumption of system resources by threaded processes:

- max_thread_proc

This defines the maximum number of threads that any single process can create and have running at the same time:

   Minimum = 64
    Maximum = 30000
    Default = 64

- nkthread

This defines the max.imum number of kernel threads that are allowed on the system at any given time:

   Minimum = 50
    Maximum = 30000
    Default = (nproc * 2) + 16
.