|
|
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.