|
|
1.1 root 1: .\" Copyright (c) 1980 Regents of the University of California.
2: .\" All rights reserved. The Berkeley software License Agreement
3: .\" specifies the terms and conditions for redistribution.
4: .\"
5: .\" @(#)getrusage.2 6.6 (Berkeley) 4/3/87
6: .\"
7: .TH GETRUSAGE 2 "April 3, 1987"
8: .UC 4
9: .SH NAME
10: getrusage \- get information about resource utilization
11: .SH SYNOPSIS
12: .nf
13: .ft B
14: #include <sys/time.h>
15: #include <sys/resource.h>
16: .PP
17: .ft B
18: .ta \w'#define 'u +\w'RUSAGE_CHILDREN 'u +\w'-1 'u
19: #define RUSAGE_SELF 0 /* calling process */
20: #define RUSAGE_CHILDREN -1 /* terminated child processes */
21: .DT
22: .PP
23: .ft B
24: getrusage(who, rusage)
25: int who;
26: struct rusage *rusage;
27: .fi
28: .SH DESCRIPTION
29: .I Getrusage
30: returns information describing the resources utilized by the current
31: process, or all its terminated child processes.
32: The
33: .I who
34: parameter is one of RUSAGE_SELF or RUSAGE_CHILDREN.
35: The buffer to which
36: .I rusage
37: points will be filled in with
38: the following structure:
39: .PP
40: .nf
41: .RS
42: .ta \w'struct 'u +\w'struct 'u +3u*\w'struct 'u
43: struct rusage {
44: struct timeval ru_utime; /* user time used */
45: struct timeval ru_stime; /* system time used */
46: int ru_maxrss;
47: int ru_ixrss; /* integral shared text memory size */
48: int ru_idrss; /* integral unshared data size */
49: int ru_isrss; /* integral unshared stack size */
50: int ru_minflt; /* page reclaims */
51: int ru_majflt; /* page faults */
52: int ru_nswap; /* swaps */
53: int ru_inblock; /* block input operations */
54: int ru_oublock; /* block output operations */
55: int ru_msgsnd; /* messages sent */
56: int ru_msgrcv; /* messages received */
57: int ru_nsignals; /* signals received */
58: int ru_nvcsw; /* voluntary context switches */
59: int ru_nivcsw; /* involuntary context switches */
60: };
61: .RE
62: .DT
63: .fi
64: .PP
65: The fields are interpreted as follows:
66: .TP 15
67: ru_utime
68: the total amount of time spent executing in user mode.
69: .TP 15
70: ru_stime
71: the total amount of time spent in the system executing on behalf
72: of the process(es).
73: .TP 15
74: ru_maxrss
75: the maximum resident set size utilized (in kilobytes).
76: .TP 15
77: ru_ixrss
78: an \*(lqintegral\*(rq value indicating the amount of memory used
79: by the text segment
80: that was also shared among other processes. This value is expressed
81: in units of kilobytes * ticks-of-execution.
82: .TP 15
83: ru_idrss
84: an integral value of the amount of unshared memory residing in the
85: data segment of a process (expressed in units of
86: kilobytes * ticks-of-execution).
87: .TP 15
88: ru_isrss
89: an integral value of the amount of unshared memory residing in the
90: stack segment of a process (expressed in units of
91: kilobytes * ticks-of-execution).
92: .TP 15
93: ru_minflt
94: the number of page faults serviced without any I/O activity; here
95: I/O activity is avoided by \*(lqreclaiming\*(rq a page frame from
96: the list of pages awaiting reallocation.
97: .TP 15
98: ru_majflt
99: the number of page faults serviced that required I/O activity.
100: .TP 15
101: ru_nswap
102: the number of times a process was \*(lqswapped\*(rq out of main
103: memory.
104: .TP 15
105: ru_inblock
106: the number of times the file system had to perform input.
107: .TP 15
108: ru_oublock
109: the number of times the file system had to perform output.
110: .TP 15
111: ru_msgsnd
112: the number of IPC messages sent.
113: .TP 15
114: ru_msgrcv
115: the number of IPC messages received.
116: .TP 15
117: ru_nsignals
118: the number of signals delivered.
119: .TP 15
120: ru_nvcsw
121: the number of times a context switch resulted due to a process
122: voluntarily giving up the processor before its time slice was
123: completed (usually to await availability of a resource).
124: .TP 15
125: ru_nivcsw
126: the number of times a context switch resulted due to a higher
127: priority process becoming runnable or because the current process
128: exceeded its time slice.
129: .SH NOTES
130: The numbers
131: .I ru_inblock
132: and
133: .I ru_oublock
134: account only for real
135: I/O; data supplied by the caching mechanism is charged only
136: to the first process to read or write the data.
137: .SH ERRORS
138: The possible errors for
139: .I getrusage
140: are:
141: .TP 15
142: [EINVAL]
143: The
144: .I who
145: parameter is not a valid value.
146: .TP 15
147: [EFAULT]
148: The address specified by the
149: .I rusage
150: parameter is not in a valid part of the process address space.
151: .SH SEE ALSO
152: gettimeofday(2), wait(2)
153: .SH BUGS
154: There is no way to obtain information about a child process
155: that has not yet terminated.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.