Next: Limiting Resource Usage, Up: Resource Usage And Limitation [Contents][Index]
The function getrusage
and the data type struct rusage
are used to examine the resource usage of a process. They are declared
in sys/resource.h.
Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.
This function reports resource usage totals for processes specified by
processes, storing the information in *rusage
.
In most systems, processes has only two valid values:
RUSAGE_SELF
Just the current process.
RUSAGE_CHILDREN
All child processes (direct and indirect) that have already terminated.
The return value of getrusage
is zero for success, and -1
for failure.
EINVAL
The argument processes is not valid.
One way of getting resource usage for a particular child process is with
the function wait4
, which returns totals for a child when it
terminates. See BSD Process Wait Function.
This data type stores various resource usage statistics. It has the following members, and possibly others:
struct timeval ru_utime
Time spent executing user instructions.
struct timeval ru_stime
Time spent in operating system code on behalf of processes.
long int ru_maxrss
The maximum resident set size used, in kilobytes. That is, the maximum number of kilobytes of physical memory that processes used simultaneously.
long int ru_ixrss
An integral value expressed in kilobytes times ticks of execution, which indicates the amount of memory used by text that was shared with other processes.
long int ru_idrss
An integral value expressed the same way, which is the amount of unshared memory used for data.
long int ru_isrss
An integral value expressed the same way, which is the amount of unshared memory used for stack space.
long int ru_minflt
The number of page faults which were serviced without requiring any I/O.
long int ru_majflt
The number of page faults which were serviced by doing I/O.
long int ru_nswap
The number of times processes was swapped entirely out of main memory.
long int ru_inblock
The number of times the file system had to read from the disk on behalf of processes.
long int ru_oublock
The number of times the file system had to write to the disk on behalf of processes.
long int ru_msgsnd
Number of IPC messages sent.
long int ru_msgrcv
Number of IPC messages received.
long int ru_nsignals
Number of signals received.
long int ru_nvcsw
The number of times processes voluntarily invoked a context switch (usually to wait for some service).
long int ru_nivcsw
The number of times an involuntary context switch took place (because a time slice expired, or another process of higher priority was scheduled).
vtimes
is a historical function that does some of what
getrusage
does. getrusage
is a better choice.
vtimes
and its vtimes
data structure are declared in
sys/vtimes.h.
Preliminary: | MT-Safe | AS-Safe | AC-Safe | See POSIX Safety Concepts.
vtimes
reports resource usage totals for a process.
If current is non-null, vtimes
stores resource usage totals for
the invoking process alone in the structure to which it points. If
child is non-null, vtimes
stores resource usage totals for all
past children (which have terminated) of the invoking process in the structure
to which it points.
This data type contains information about the resource usage of a process.
Each member corresponds to a member of the struct rusage
data type
described above.
vm_utime
User CPU time. Analogous to ru_utime
in struct rusage
vm_stime
System CPU time. Analogous to ru_stime
in struct rusage
vm_idsrss
Data and stack memory. The sum of the values that would be reported as
ru_idrss
and ru_isrss
in struct rusage
vm_ixrss
Shared memory. Analogous to ru_ixrss
in struct rusage
vm_maxrss
Maximent resident set size. Analogous to ru_maxrss
in
struct rusage
vm_majflt
Major page faults. Analogous to ru_majflt
in struct rusage
vm_minflt
Minor page faults. Analogous to ru_minflt
in struct rusage
vm_nswap
Swap count. Analogous to ru_nswap
in struct rusage
vm_inblk
Disk reads. Analogous to ru_inblk
in struct rusage
vm_oublk
Disk writes. Analogous to ru_oublk
in struct rusage
The return value is zero if the function succeeds; -1
otherwise.
An additional historical function for examining resource usage,
vtimes
, is supported but not documented here. It is declared in
sys/vtimes.h.
Next: Limiting Resource Usage, Up: Resource Usage And Limitation [Contents][Index]