GETRUSAGE
Section: System Calls (2)
Index
Return to Main Contents
BSD mandoc
BSD 4
NAME
getrusage
- get information about resource utilization
SYNOPSIS
Fd #include <sys/time.h>
Fd #include <sys/resource.h>
Fd #define RUSAGE_SELF 0
Fd #define RUSAGE_CHILDREN-1
Ft int
Fn getrusage int who struct rusage *rusage
DESCRIPTION
Fn Getrusage
returns information describing the resources utilized by the current
process, or all its terminated child processes.
The
Fa who
parameter is either
RUSAGE_SELF
or
RUSAGE_CHILDREN
The buffer to which
Fa rusage
points will be filled in with
the following structure:
struct rusage {
struct timeval ru_utime; /* user time used */
struct timeval ru_stime; /* system time used */
long ru_maxrss; /* integral max resident set size */
long ru_ixrss; /* integral shared text memory size */
long ru_idrss; /* integral unshared data size */
long ru_isrss; /* integral unshared stack size */
long ru_minflt; /* page reclaims */
long ru_majflt; /* page faults */
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 fields are interpreted as follows:
- Fa ru_utime
-
the total amount of time spent executing in user mode.
- Fa ru_stime
-
the total amount of time spent in the system executing on behalf
of the process(es).
- Fa ru_maxrss
-
the maximum resident set size utilized (in kilobytes).
- Fa ru_ixrss
-
an ``integral'' value indicating the amount of memory used
by the text segment
that was also shared among other processes. This value is expressed
in units of kilobytes * ticks-of-execution.
- Fa ru_idrss
-
an integral value of the amount of unshared memory residing in the
data segment of a process (expressed in units of
kilobytes * ticks-of-execution).
- Fa ru_isrss
-
an integral value of the amount of unshared memory residing in the
stack segment of a process (expressed in units of
kilobytes * ticks-of-execution).
- Fa ru_minflt
-
the number of page faults serviced without any I/O activity; here
I/O activity is avoided by ``reclaiming'' a page frame from
the list of pages awaiting reallocation.
- Fa ru_majflt
-
the number of page faults serviced that required I/O activity.
- Fa ru_nswap
-
the number of times a process was ``swapped'' out of main
memory.
- Fa ru_inblock
-
the number of times the file system had to perform input.
- Fa ru_oublock
-
the number of times the file system had to perform output.
- Fa ru_msgsnd
-
the number of IPC messages sent.
- Fa ru_msgrcv
-
the number of IPC messages received.
- Fa ru_nsignals
-
the number of signals delivered.
- Fa 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).
- Fa 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.
NOTES
The numbers
Fa ru_inblock
and
Fa ru_oublock
account only for real
I/O; data supplied by the caching mechanism is charged only
to the first process to read or write the data.
ERRORS
Fn Getrusage
returns -1 on error.
The possible errors are:
- Bq Er EINVAL
-
The
Fa who
parameter is not a valid value.
- Bq Er EFAULT
-
The address specified by the
Fa rusage
parameter is not in a valid part of the process address space.
SEE ALSO
gettimeofday(2),
wait(2)
BUGS
There is no way to obtain information about a child process
that has not yet terminated.
HISTORY
The
Fn getrusage
function call appeared in
BSD 4.2
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- NOTES
-
- ERRORS
-
- SEE ALSO
-
- BUGS
-
- HISTORY
-
This document was created by
man2html,
using the manual pages.
Time: 21:44:11 GMT, August 05, 2022