getrusage man page on OpenIndiana

Man page or keyword search:  
man Server   20441 pages
apropos Keyword Search (all sections)
Output format
OpenIndiana 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 shar‐
		      ing 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  section  of
		      this page.

       ru_majflt      The number of page faults serviced which required physi‐
		      cal 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	     │Committed			   │
       ├─────────────────────────────┼─────────────────────────────┤
       │Standard		     │See standards(5).		   │
       └─────────────────────────────┴─────────────────────────────┘

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.11			  2 Jul 2004			 getrusage(3C)
[top]

List of man pages available for OpenIndiana

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