(libc.info.gz) Resource Usage
Info Catalog
(libc.info.gz) Resource Usage And Limitation
(libc.info.gz) Limits on Resources
22.1 Resource Usage
===================
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'.
-- Function: int getrusage (int PROCESSES, struct rusage *RUSAGE)
Preliminary: | MT-Safe | AS-Safe | AC-Safe | 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. BSD Wait Functions.
-- Data Type: struct rusage
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'.
-- Function: int vtimes (struct vtimes *CURRENT, struct vtimes *CHILD)
Preliminary: | MT-Safe | AS-Safe | AC-Safe | 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.
-- Data Type: struct vtimes
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'.
Info Catalog
(libc.info.gz) Resource Usage And Limitation
(libc.info.gz) Limits on Resources
automatically generated by
info2html