\section{\module{resource} ---
         Resource usage information}

\declaremodule{builtin}{resource}
  \platform{Unix}
\modulesynopsis{An interface to provide resource usage information on
  the current process.}
\moduleauthor{Jeremy Hylton}{jeremy@alum.mit.edu}
\sectionauthor{Jeremy Hylton}{jeremy@alum.mit.edu}


This module provides basic mechanisms for measuring and controlling
system resources utilized by a program.

Symbolic constants are used to specify particular system resources and
to request usage information about either the current process or its
children.

A single exception is defined for errors:


\begin{excdesc}{error}
  The functions described below may raise this error if the underlying
  system call failures unexpectedly.
\end{excdesc}

\subsection{Resource Limits}

Resources usage can be limited using the \function{setrlimit()} function
described below. Each resource is controlled by a pair of limits: a
soft limit and a hard limit. The soft limit is the current limit, and
may be lowered or raised by a process over time. The soft limit can
never exceed the hard limit. The hard limit can be lowered to any
value greater than the soft limit, but not raised. (Only processes with
the effective UID of the super-user can raise a hard limit.)

The specific resources that can be limited are system dependent. They
are described in the \manpage{getrlimit}{2} man page.  The resources
listed below are supported when the underlying operating system
supports them; resources which cannot be checked or controlled by the
operating system are not defined in this module for those platforms.

\begin{funcdesc}{getrlimit}{resource}
  Returns a tuple \code{(\var{soft}, \var{hard})} with the current
  soft and hard limits of \var{resource}. Raises \exception{ValueError} if
  an invalid resource is specified, or \exception{error} if the
  underyling system call fails unexpectedly.
\end{funcdesc}

\begin{funcdesc}{setrlimit}{resource, limits}
  Sets new limits of consumption of \var{resource}. The \var{limits}
  argument must be a tuple \code{(\var{soft}, \var{hard})} of two
  integers describing the new limits. A value of \code{-1} can be used to
  specify the maximum possible upper limit.

  Raises \exception{ValueError} if an invalid resource is specified,
  if the new soft limit exceeds the hard limit, or if a process tries
  to raise its hard limit (unless the process has an effective UID of
  super-user).  Can also raise \exception{error} if the underyling
  system call fails.
\end{funcdesc}

These symbols define resources whose consumption can be controlled
using the \function{setrlimit()} and \function{getrlimit()} functions
described below. The values of these symbols are exactly the constants
used by \C{} programs.

The \UNIX{} man page for \manpage{getrlimit}{2} lists the available
resources.  Note that not all systems use the same symbol or same
value to denote the same resource.  This module does not attempt to
mask platform differences --- symbols not defined for a platform will
not be available from this module on that platform.

\begin{datadesc}{RLIMIT_CORE}
  The maximum size (in bytes) of a core file that the current process
  can create.  This may result in the creation of a partial core file
  if a larger core would be required to contain the entire process
  image.
\end{datadesc}

\begin{datadesc}{RLIMIT_CPU}
  The maximum amount of processor time (in seconds) that a process can
  use. If this limit is exceeded, a \constant{SIGXCPU} signal is sent to
  the process. (See the \refmodule{signal} module documentation for
  information about how to catch this signal and do something useful,
  e.g. flush open files to disk.)
\end{datadesc}

\begin{datadesc}{RLIMIT_FSIZE}
  The maximum size of a file which the process may create.  This only
  affects the stack of the main thread in a multi-threaded process.
\end{datadesc}

\begin{datadesc}{RLIMIT_DATA}
  The maximum size (in bytes) of the process's heap.
\end{datadesc}

\begin{datadesc}{RLIMIT_STACK}
  The maximum size (in bytes) of the call stack for the current
  process.
\end{datadesc}

\begin{datadesc}{RLIMIT_RSS}
  The maximum resident set size that should be made available to the
  process.
\end{datadesc}

\begin{datadesc}{RLIMIT_NPROC}
  The maximum number of processes the current process may create.
\end{datadesc}

\begin{datadesc}{RLIMIT_NOFILE}
  The maximum number of open file descriptors for the current
  process.
\end{datadesc}

\begin{datadesc}{RLIMIT_OFILE}
  The BSD name for \constant{RLIMIT_NOFILE}.
\end{datadesc}

\begin{datadesc}{RLIMIT_MEMLOC}
  The maximm address space which may be locked in memory.
\end{datadesc}

\begin{datadesc}{RLIMIT_VMEM}
  The largest area of mapped memory which the process may occupy.
\end{datadesc}

\begin{datadesc}{RLIMIT_AS}
  The maximum area (in bytes) of address space which may be taken by
  the process.
\end{datadesc}

\subsection{Resource Usage}

These functions are used to retrieve resource usage information:

\begin{funcdesc}{getrusage}{who}
  This function returns an object that describes the resources
  consumed by either the current process or its children, as specified
  by the \var{who} parameter.  The \var{who} parameter should be
  specified using one of the \constant{RUSAGE_*} constants described
  below.

  The fields of the return value each describe how a particular system
  resource has been used, e.g. amount of time spent running is user mode
  or number of times the process was swapped out of main memory. Some
  values are dependent on the clock tick internal, e.g. the amount of
  memory the process is using.

  For backward compatibility, the return value is also accessible as
  a tuple of 16 elements.

  The fields \member{ru_utime} and \member{ru_stime} of the return value
  are floating point values representing the amount of time spent
  executing in user mode and the amount of time spent executing in system
  mode, respectively. The remaining values are integers. Consult the
  \manpage{getrusage}{2} man page for detailed information about these
  values. A brief summary is presented here:

\begin{tableiii}{r|l|l}{code}{Index}{Field}{Resource}
  \lineiii{0}{\member{ru_utime}}{time in user mode (float)}
  \lineiii{1}{\member{ru_stime}}{time in system mode (float)}
  \lineiii{2}{\member{ru_maxrss}}{maximum resident set size}
  \lineiii{3}{\member{ru_ixrss}}{shared memory size}
  \lineiii{4}{\member{ru_idrss}}{unshared memory size}
  \lineiii{5}{\member{ru_isrss}}{unshared stack size}
  \lineiii{6}{\member{ru_minflt}}{page faults not requiring I/O}
  \lineiii{7}{\member{ru_majflt}}{page faults requiring I/O}
  \lineiii{8}{\member{ru_nswap}}{number of swap outs}
  \lineiii{9}{\member{ru_inblock}}{block input operations}
  \lineiii{10}{\member{ru_oublock}}{block output operations}
  \lineiii{11}{\member{ru_msgsnd}}{messages sent}
  \lineiii{12}{\member{ru_msgrcv}}{messages received}
  \lineiii{13}{\member{ru_nsignals}}{signals received}
  \lineiii{14}{\member{ru_nvcsw}}{voluntary context switches}
  \lineiii{15}{\member{ru_nivcsw}}{involuntary context switches}
\end{tableiii}

  This function will raise a \exception{ValueError} if an invalid
  \var{who} parameter is specified. It may also raise
  \exception{error} exception in unusual circumstances.

  \versionchanged[Added access to values as attributes of the
  returned object]{2.3}
\end{funcdesc}

\begin{funcdesc}{getpagesize}{}
  Returns the number of bytes in a system page. (This need not be the
  same as the hardware page size.) This function is useful for
  determining the number of bytes of memory a process is using. The
  third element of the tuple returned by \function{getrusage()} describes
  memory usage in pages; multiplying by page size produces number of
  bytes. 
\end{funcdesc}

The following \constant{RUSAGE_*} symbols are passed to the
\function{getrusage()} function to specify which processes information
should be provided for.

\begin{datadesc}{RUSAGE_SELF}
  \constant{RUSAGE_SELF} should be used to
  request information pertaining only to the process itself.
\end{datadesc}

\begin{datadesc}{RUSAGE_CHILDREN}
  Pass to \function{getrusage()} to request resource information for
  child processes of the calling process.
\end{datadesc}

\begin{datadesc}{RUSAGE_BOTH}
  Pass to \function{getrusage()} to request resources consumed by both
  the current process and child processes.  May not be available on all
  systems.
\end{datadesc}
