Mercurial > cpython-lru_cache-weakref
annotate Doc/lib/libresource.tex @ 5817:48b94de85bf3 legacy-trunk
Extensive changes by AMK.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Thu, 17 Jul 1997 16:29:42 +0000 |
| parents | eecbcc48b0e9 |
| children | 3468ea8645ca |
| rev | line source |
|---|---|
|
4769
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1 \section{Built-in Module \sectcode{resource}} |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
2 |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
3 \bimodindex{resource} |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
4 This module provides basic mechanisms for measuring and controlling |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
5 system resources utilized by a program. |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
6 |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
7 Symbolic constants are used to specify particular system resources and |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
8 to request usage information about either the current process or its |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
9 children. |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
10 |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
11 Resources usage can be limited using the \code{setrlimit} function |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
12 described below. Each resource is controlled by a pair of limits: a |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
13 soft limit and a hard limit. The soft limit is the current limit, and |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
14 may be lowered or raised by a process over time. The soft limit can |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
15 never exceed the hard limit. The hard limit can be lowered to any |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
16 value greater than the soft limit, but not raised. (Only process with |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
17 the effective UID of the super-user can raise a hard limit). |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
18 |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
19 The specific resources that can be limited are system dependent. They |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
20 are described in the \code{getrlimit} man page. Typical resources |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
21 include: |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
22 |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
23 \begin{description} |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
24 |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
25 \item[RLIMIT_CORE] |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
26 The maximum size (in bytes) of a core file that the current process |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
27 can create. |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
28 |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
29 \item[RLIMIT_CPU] |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
30 The maximum amount of CPU time (in seconds) that a process can use. If |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
31 this limit is exceeded, a \code{SIGXCPU} signal is sent to the |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
32 process. (See the \code{signal} module documentation for information |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
33 about how to catch this signal and do something useful, e.g. flush |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
34 open files to disk.) |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
35 |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
36 \end{description} |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
37 |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
38 \begin{datadesc}{RLIMIT_*} |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
39 These symbols define resources whose consumption can be controlled |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
40 using the \code{setrlimit} and \code{getrlimit} functions defined |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
41 below. The values of these symbols are exactly the constants used |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
42 by C programs. |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
43 |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
44 The \UNIX{} man page for \file{getrlimit} lists the available |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
45 resources. Note that not all systems use the same symbol or same |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
46 value to denote the same resource. |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
47 \end{datadesc} |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
48 |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
49 \begin{datadesc}{RUSAGE_*} |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
50 These symbols are passed to the \code{getrusage} function to specify |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
51 whether usage information is being request for the current process, |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
52 \code{RUSAGE_SELF} or its child processes \code{RUSAGE_CHILDREN}. On |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
53 some system, \code{RUSAGE_BOTH} requests information for both. |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
54 \end{datadesc} |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
55 |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
56 \begin{datadesc}{error} |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
57 The functions described below may raise this error if the underlying |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
58 system call failures unexpectedly. |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
59 \end{datadesc} |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
60 |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
61 The resource module defines the following functions: |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
62 |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
63 \begin{funcdesc}{getrusage}{who} |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
64 This function returns a large tuple that describes the resources |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
65 consumed by either the current process or its children, as specified |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
66 by the \var{who} parameter. The elements of the return value each |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
67 describe how a particular system resource has been used, e.g. amount |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
68 of time spent running is user mode or number of times the process was |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
69 swapped out of main memory. Some values are dependent on the clock |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
70 tick internal, e.g. the amount of memory the process is using. |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
71 |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
72 The first two elements of the return value are floating point values |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
73 representing the amount of time spent executing in user mode and the |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
74 amount of time spent executing in system mode, respectively. The |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
75 remaining values are integers. Consult the \code{getrusage} man page |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
76 for detailed information about these values. A brief summary is |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
77 presented here: |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
78 |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
79 \begin{tabular}{rl} |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
80 \emph{offset} & \emph{resource} \\ |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
81 0 & time in user mode (float) \\ |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
82 1 & time in system mode (float) \\ |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
83 2 & maximum resident set size \\ |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
84 3 & shared memory size \\ |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
85 4 & unshared memory size \\ |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
86 5 & unshared stack size \\ |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
87 6 & page faults not requiring I/O \\ |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
88 7 & page faults requiring I/O \\ |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
89 8 & number of swap outs \\ |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
90 9 & block input operations \\ |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
91 10 & block output operations \\ |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
92 11 & messages sent \\ |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
93 12 & messages received \\ |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
94 13 & signals received \\ |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
95 14 & voluntary context switches \\ |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
96 15 & involuntary context switches \\ |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
97 \end{tabular} |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
98 |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
99 This function will raise a ValueError if an invalid \var{who} |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
100 parameter is specified. It may also raise a \code{resource.error} |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
101 exception in unusual circumstances. |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
102 \end{funcdesc} |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
103 |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
104 \begin{funcdesc}{getpagesize}{} |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
105 Returns the number of bytes in a system page. (This need not be the |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
106 same as the hardware page size.) This function is useful for |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
107 determining the number of bytes of memory a process is using. The |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
108 third element of the tuple returned by \code{getrusage} describes |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
109 memory usage in pages; multiplying by page size produces number of |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
110 bytes. |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
111 \end{funcdesc} |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
112 |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
113 \begin{funcdesc}{getrlimit}{resource} |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
114 Returns a tuple \code{(\var{soft}, \var{hard})} with the current |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
115 soft and hard limits of \var{resource}. Raises ValueError if |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
116 an invalid resource is specified, or \code{resource.error} if the |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
117 underyling system call fails unexpectedly. |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
118 \end{funcdesc} |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
119 |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
120 \begin{funcdesc}{setrlimit}{resource\, limits} |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
121 Sets new limits of consumption of \var{resource}. The \var{limits} |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
122 argument must be a tuple \code{(\var{soft}, \var{hard})} of two |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
123 integers describing the new limits. A value of -1 can be used to |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
124 specify the maximum possible upper limit. |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
125 |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
126 Raises ValueError if an invalid resource is specified, if the new |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
127 soft limit exceeds the hard limit, or if a process tries to raise its |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
128 hard limit (unless the process has an effective UID of |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
129 super-user). Can also raise a \code{resource.error} if the |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
130 underyling system call fails. |
|
eecbcc48b0e9
Added docs for Jeremy's resource module.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
131 \end{funcdesc} |
