NAME

      PRM overview


DESCRIPTION

      Process Resource Manager (PRM) is a resource management tool used to
      control the amount of resources that processes use during peak system
      load. PRM can guarantee both a minimum and, depending on the resource,
      a maximum amount of a resource available to a group of processes.

      The most important PRM concept is groups. A PRM group is a collection
      of processes that is assigned system resources. PRM allows the
      assignment of applications and users to PRM groups.  PRM then manages
      each group's CPU, disk bandwidth, and memory resources according to
      the current configuration.

      Because resource management is performed on a group level, it is
      possible that an individual user or application may not get the
      resources it requires in a group consisting of many users or
      applications. In such cases, reduce the number of users and
      applications in the group or create a group specifically for the
      resource-intensive user or application.

      PRM has four managers:

      CPU (CPU percentage)
	   Ensures that each PRM group is granted at least its allocation of
	   CPU. Optionally for FSS PRM groups (described below), this
	   resource manager ensures no more than its capped amount of CPU.
	   For PSET PRM groups (also described below), processes are capped
	   on CPU availability by the number of processors assigned to the
	   group.

      MEM (memory)
	   Ensures that each PRM group is granted at least its share, but
	   (optionally) no more than its capped amount of memory.
	   Additionally, under in-kernel memory management, you can specify
	   memory shares be isolated so that a group's assigned memory
	   shares cannot be loaned out to, or borrowed from, other groups.

      DISK (disk bandwidth)
	   Ensures that each FSS PRM group is granted at least its share of
	   disk bandwidth. PRM disk bandwidth management can only control
	   disks that are mounted and under the control of HP's Logical
	   Volume Manager (LVM) or VERITAS Volume Manager(TM) (VxVM(R)).
	   PSET PRM groups are treated as part of PRM_SYS (PRMID 0) for disk
	   bandwidth purposes.

      APPL (application)
	   Ensures that specified applications and their child processes run
	   in the appropriate PRM groups.

      CPU capping and memory capping are implemented differently. For more
      information, see the HP Process Resource Manager User's Guide.

      The managers control resources, user processes, compartment processes,
      and applications based on records in the configuration. The managers
      use several types of records. The most important records are PRM group
      records, because all other records must reference the PRM groups
      defined in these records. The various records are described below. For
      more detailed information on records, see prmconf(4).

      Group
	   Specifies a PRM group's name and its CPU allocation.	 There are
	   two types of PRM groups:

	   FSS PRM group

		The traditional PRM group, whose CPU entitlement is
		specified in shares. This group uses the Fair Share
		Scheduler in the HP-UX kernel within the system's default
		processor set (PSET). CPU capping is optional and is
		available through the prmconfig -M option.

	   PSET PRM group

		A PRM group whose CPU entitlement is specified by assigning
		it a subset of the system's processors (PSET).	Processes in
		a PSET have equal access to CPU cycles on their assigned
		CPUs through the HP-UX standard scheduler.  CPU usage is
		capped as a result of the number of processors assigned to
		the PSET. PSET PRM groups are supported on HP-UX 11i V1.0
		(B.11.11) and later.

      Compartment
	   Maps existing secure compartments to PRM groups. (Use the
	   optional HP product Security Containment to create the secure
	   compartments. You can also create these compartments using a PRM
	   utility such as srpgen or prm2scomp.)

      Disk bandwidth
	   Specifies an FSS PRM group's disk bandwidth shares for a given
	   logical volume group. PSET PRM groups do not support disk
	   bandwidth records.  Disk bandwidth capping is not supported.

      Application
	   Specifies an application (either explicitly or by regular
	   expression) and the PRM group in which the application should
	   run. Optionally, it specifies alternate names the application can
	   take at execution. (Alternate names are most common for complex
	   programs such as database programs that launch many processes and
	   rename them.)

      Memory
	   Specifies a PRM group's memory shares, and its optional cap on
	   memory use. Also specifies the method, on HP-UX 11.0 only, used
	   to select processes to suppress if the group exceeds its memory
	   percentage.	On HP-UX 11i V1.0 (B.11.11) and later, memory
	   records can specify isolation parameters so that memory cannot be
	   loaned out or borrowed from other groups.

      User Specifies a user or a collection of users (through a netgroup)
	   and assigns the user or netgroup to an initial PRM group.
	   Optionally, it can specify alternate PRM groups.

    PRM COMMANDS
      PRM supports the commands below. For more information about a command,
      see its man page. For more information on the xprm command, see its
      online help.

      xprm
      Launch the PRM graphical user interface (GUI).

      prmanalyze
      Analyze accounting files for data on resource usage and contention to
      help plan PRM configurations.

      prmavail
      Display resource availability to help plan PRM configurations.

      prmconfig
      Configure, enable, disable, and reset PRM. Also, validate PRM
      configuration files and control PRM's message logging. (You can
      perform many of these tasks using the GUI, xprm.)

      prmlist
      Display the current PRM group, memory, user, application, and disk
      configuration information.

      prmloadconf
      Create a PRM configuration file or update an existing configuration
      file.

      prmmonitor
      Monitor current PRM configuration and resource usage by PRM groups.

      prmmove
      Move processes or groups of processes to another PRM group.

      prmrecover
      Reactivate processes left suppressed after an unexpected termination
      of the PRM memory daemon.


      prmrun
      Run an application in its assigned group or in a specified group.

      prmagt
      The HP PRM SNMP read-only agent.	This gets started at boot time, and
      should always remain running. It can be used to gather statistics from
      any machine running PRM. (Available only on HP 9000 systems.)

      prm2scomp
      Generates a minimal Security Containment configuration based on a PRM
      configuration. The Security Containment configuration manages secure
      compartments. (Available for HP-UX 11i V2.0 and later.)

      scomp2prm
      Generates a minimal PRM configuration based on a Security Containment
      configuration. The Security Containment configuration manages secure
      compartments. (Available for HP-UX 11i V2.0 and later.)

      srpgen
      Generates secure resource partitions by creating both a minimal
      Security Containment configuration and a minimal PRM configuration
      based on your input. (Available for HP-UX 11i V2.0 and later.)


COMMAND AVAILABILITY

      See the individual man pages for information on whether root
      privileges are needed to run a given utility.


HOW TO USE PRM

      To use PRM:

      1. Create a PRM configuration

	   Use the default configuration file /etc/prmconf to specify your
	   configuration or edit the file (or a copy of it) to create a
	   custom configuration.

	   If you use a name other than /etc/prmconf for your configuration
	   file, it is suggested you place your configuration file in the
	   directory /opt/prm/conf/ so that all your files are in a single
	   directory.

      2. Load the configuration

	   You have two ways to load your configuration:

	   prmconfig -i [-f configfile ]
	   Load the configuration and initialize, moving user processes to
	   the owners' initial groups, moving applications to their assigned
	   groups, and moving compartment processes to their assigned
	   groups.

	   prmconfig -k [-f configfile ]
	   Load the configuration keeping the existing arrangement of users,
	   processes, and groups.

      3. Enable the managers

	   prmconfig -e

	   NOTE: You must start the application manager for PRM to place
	   user processes, application processes, or compartment processes
	   in their assigned PRM groups. Start the application manager using
	   prmconfig -e or prmconfig -e APPL.

      Alternatively, you can use the PRM GUI. To do so:

      1. Launch the GUI

	   /opt/prm/bin/xprm

      2. Create a PRM configuration

	   You can configure PRM using various methods. You can use the
	   default configuration file /etc/prmconf to specify your
	   configuration. You can edit the /etc/prmconf file (or a copy of
	   it) to create a custom configuration. You can use the New command
	   under the File menu in xprm.

	   (To work from a copy of /etc/prmconf, select /etc/prmconf and add
	   the records you desire. Then use the Save As item under the File
	   menu to save the file.)

	   When saving your configuration file, if you do not specify the
	   full path name, the file is placed in the directory
	   /opt/prm/conf/.

      3. Load the configuration

	   You have two ways to load your configuration. Follow the desired
	   menu path:

	   Action->Configuration File->Load, moving processes to assigned
	   groups
	   Load the configuration and initialize, moving user processes to
	   the owners' initial groups and moving applications to their
	   assigned groups.

	   Action->Configuration File->Load, keeping processes in current
	   groups
	   Load the configuration keeping the existing arrangement of users,
	   processes, and groups.

      4. Enable the resource managers

	   A. Highlight a resource manager.

	   B. Follow the menu path:

		Action->Resource Managers->Enable Resource Manager

	   C. Repeat the previous steps for any other resource managers
	      you want to enable.

	 NOTE: You must start the application manager for PRM to place user
	 processes, application processes, or compartment processes in their
	 assigned PRM groups.


HOW TO USE THE GUI

      For information on using the GUI, see the online help available in
      xprm. There is also an xprm(1) man page.


SUPPORT AND PATCH POLICIES

      Visit http://www.hp.com/go/prm for information on PRM's support policy
      and patch policy. These policies indicate the time periods for which
      this version of PRM is supported and patched. (Use the what command on
      the file /opt/prm/bin/prmconfig to print the version of your PRM.)


AUTHOR

      PRM was developed by HP.


FILES

      /etc/prmconf		      default Process Resource Manager
				      configuration file

      /etc/rc.config.d/prm	      startup configuration file used by the
				      startup script /sbin/init.d/prm

      /sbin/init.d/prm		      start/stop script useful for testing
				      /etc/rc.config.d/prm options and fully
				      stopping PRM without manually killing
				      processes

      /opt/prm/bin/xprm		      PRM graphical user interface (GUI)

      /opt/prm/bin/prm3d	      daemon that enables remote management
				      of PRM

      /var/adm/syslog/syslog.log      system log file used by PRM

      /opt/prm/exempt		      user-editable list of executables that
				      are exempt from being stopped or
				      suppressed by the user-space memory
				      daemon.  The PRM application and
				      memory manager daemons, prmconfig,
				      prmmove, and prmrun are on this list
				      by default.

      /etc/shells, /opt/prm/shells    lists of executables that should be
				      considered as shells for the purposes
				      of the application and memory
				      managers. The daemons use these files,
				      checking /etc/shells followed by
				      /opt/prm/shells, to properly identify
				      shell scripts. A default list is kept
				      internally (sh, csh, ksh, keysh, rsh,
				      and rksh), but users often add others
				      to their systems (tcsh, pam, perl).
				      /etc/shells is typically for login
				      shells. Use /opt/prm/shells for shells
				      that you do not want to add to
				      /etc/shells.


SEE ALSO

      at(1), id(1), login(1), prmagt(1), prmanalyze(1), prmavail(1),
      prmconfig(1), prmlist(1), prmloadconf(1), prmmonitor(1), prmmove(1),
      prmrecover(1), prmrun(1), prm2scomp(1), ps(1), scomp2prm(1),
      srpgen(1), xprm(1), xprm_keytool(1), cron(1M), exec(2), fork(2),
      netgroup(4), prmconf(4).

      HP Process Resource Manager User's Guide (/opt/prm/doc/PRM.ug.pdf)

      HP Process Resource Manager homepage (http://www.hp.com/go/prm)