getrusage man page on Solaris

Man page or keyword search:  
man Server   20652 pages
apropos Keyword Search (all sections)
Output format
Solaris logo
[printable version]

getrusage(3C)		 Standard C Library Functions		 getrusage(3C)

NAME
       getrusage - get information about resource utilization

SYNOPSIS
       #include <sys/resource.h>

       int getrusage(int who, struct rusage *r_usage);

DESCRIPTION
       The getrusage() function provides measures of the resources used by the
       current process, its terminated and waited-for child processes, or  the
       current	light  weight process (LWP).  If the value of the who argument
       is RUSAGE_SELF, information is returned about  resources	 used  by  the
       current	process.  If the value of the who argument is RUSAGE_CHILDREN,
       information is returned about resources	used  by  the  terminated  and
       waited-for  children  of	 the  current  process.	 If the child is never
       waited for (for instance, if the parent has SA_NOCLDWAIT	 set  or  sets
       SIGCHLD	to SIG_IGN), the resource information for the child process is
       discarded and not included in  the  resource  information  provided  by
       getrusage().  If	 the value of the who argument is RUSAGE_LWP, informa‐
       tion is returned about resources used by the current LWP.

       The r_usage argument is a pointer to an object of type struct rusage in
       which the returned information is stored.  The members of rusage are as
       follows:

       struct timeval  ru_utime;     /* user time used */
       struct timeval  ru_stime;     /* system time used */
       long	       ru_maxrss;    /* maximum resident set size */
       long	       ru_idrss;     /* integral resident set size */
       long	       ru_minflt;    /* page faults not requiring physical I/O */
       long	       ru_majflt;    /* page faults requiring physical I/O */
       long	       ru_nswap;     /* swaps */
       long	       ru_inblock;   /* block input operations */
       long	       ru_oublock;   /* block output operations */
       long	       ru_msgsnd;    /* messages sent */
       long	       ru_msgrcv;    /* messages received */
       long	       ru_nsignals;  /* signals received */
       long	       ru_nvcsw;     /* voluntary context switches */
       long	       ru_nivcsw;    /* involuntary context switches */

       The structure members are interpreted as follows:

       ru_utime	       The total amount of time spent executing in user	 mode.
		       Time is given in seconds and microseconds.

       ru_stime	       The  total  amount  of  time  spent executing in system
		       mode. Time is given in seconds and microseconds.

       ru_maxrss       The maximum resident set size.  Size is given in	 pages
		       (the size of a page, in bytes, is given by the getpage‐
		       size(3C) function). See	the   NOTES  section  of  this
		       page.

       ru_idrss	       An  "integral" value indicating the amount of memory in
		       use by a process while the  process  is	running.  This
		       value  is  the  sum  of	the  resident set sizes of the
		       process running when a clock tick occurs. The value  is
		       given  in  pages	 times	clock  ticks. It does not take
		       sharing into account. See the  NOTES  section  of  this
		       page.

       ru_minflt       The  number  of	page  faults  serviced	which  did not
		       require any physical I/O activity. See the  NOTES  sec‐
		       tion of this page.

       ru_majflt       The number of page faults serviced which required phys‐
		       ical I/O activity. This could include page ahead opera‐
		       tions  by  the  kernel.	See the	 NOTES section of this
		       page.

       ru_nswap	       The number of times a process was swapped out  of  main
		       memory.

       ru_inblock      The  number  of	times  the  file system had to perform
		       input in servicing a read(2) request.

       ru_oublock      The number of times the file system had to perform out‐
		       put in servicing a write(2) request.

       ru_msgsnd       The number of messages sent over sockets.

       ru_msgrcv       The number of messages received from sockets.

       ru_nsignals     The number of signals delivered.

       ru_nvcsw	       The  number of times a context switch resulted due to a
		       process voluntarily giving up the processor before  its
		       time slice was completed (usually to await availability
		       of a resource).

       ru_nivcsw       The number of times a context switch resulted due to  a
		       higher  priority	 process  becoming runnable or because
		       the current process exceeded its time slice.

RETURN VALUES
       Upon successful completion, getrusage() returns	0.  Otherwise,	−1  is
       returned and errno is set to indicate the error.

ERRORS
       The  getrusage() function will fail if:

       EFAULT	       The address specified by the r_usage argument is not in
		       a valid portion of the process' address space.

       EINVAL	       The who parameter is not a valid value.

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

       ┌─────────────────────────────┬─────────────────────────────┐
       │      ATTRIBUTE TYPE	     │	    ATTRIBUTE VALUE	   │
       ├─────────────────────────────┼─────────────────────────────┤
       │Interface Stability	     │Standard			   │
       └─────────────────────────────┴─────────────────────────────┘

SEE ALSO
       sar(1M),	 read(2),  times(2),  write(2),	 getpagesize(3C),   gettimeof‐
       day(3C), wait(3C), attributes(5), standards(5)

NOTES
       The  ru_maxrss,	ru_ixrss, ru_idrss, and ru_isrss members of the rusage
       structure are set to 0 in this implementation.

       The numbers ru_inblock and ru_oublock account only for  real  I/O,  and
       are  approximate measures at best. Data supplied by the cache mechanism
       is charged only to the first process to read and the  last  process  to
       write the data.

       The  way resident set size is calculated is an approximation, and could
       misrepresent the true resident set size.

       Page faults can be generated from a variety of sources and for a	 vari‐
       ety of reasons. The customary cause for a page fault is a direct refer‐
       ence by the program to a page which is not in  memory.	Now,  however,
       the kernel can generate page faults on behalf of the user, for example,
       servicing read(2) and write(2) functions.
	Also, a page fault can be caused by an absent hardware translation  to
       a page, even though the page is in physical memory.

       In  addition  to	 hardware  detected  page faults, the kernel may cause
       pseudo page faults in order to perform some housekeeping.  For example,
       the  kernel may generate page faults, even if the pages exist in physi‐
       cal memory, in order to lock down pages involved in a raw I/O request.

       By definition, major page faults require physical I/O, while minor page
       faults  do  not	require physical I/O. For example, reclaiming the page
       from the free list would avoid I/O and generate	a  minor  page	fault.
       More commonly, minor page faults occur during process startup as refer‐
       ences to pages which are already in memory. For example, if an  address
       space  faults  on some "hot" executable or shared library, this results
       in a minor page fault for the address space.  Also,  any	 one  doing  a
       read(2)	or  write(2) to something that is in the page cache will get a
       minor page fault(s) as well.

       There is no way to obtain information about a child process  which  has
       not yet terminated.

SunOS 5.10			  2 Jul 2004			 getrusage(3C)
[top]

List of man pages available for Solaris

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net