proc/user_beancounters
|
The proc filesystem entry showing resource control information is /proc/user_beancounters
file. An example content of /proc/user_beancounters
is shown below.
Note: This article describes an old interface. This is kept for compatibility and new one will be used since 028test008 kernel
|
Example
# cat /proc/user_beancounters Version: 2.5 uid resource held maxheld barrier limit failcnt 123: kmemsize 836919 1005343 2752512 2936012 0 lockedpages 0 0 32 32 0 privvmpages 4587 7289 49152 53575 0 shmpages 39 39 8192 8192 0 dummy 0 0 0 0 0 numproc 20 26 65 65 0 physpages 2267 2399 0 2147483647 0 vmguarpages 0 0 6144 2147483647 0 oomguarpages 2267 2399 6144 2147483647 0 numtcpsock 3 3 80 80 0 numflock 3 4 100 110 0 numpty 1 1 16 16 0 numsiginfo 0 1 256 256 0 tcpsndbuf 0 0 319488 524288 0 tcprcvbuf 0 0 319488 524288 0 othersockbuf 6684 7888 132096 336896 0 dgramrcvbuf 0 8372 132096 132096 0 numothersock 8 10 80 80 0 dcachesize 87672 92168 1048576 1097728 0 numfile 238 306 2048 2048 0 dummy 0 0 0 0 0 dummy 0 0 0 0 0 dummy 0 0 0 0 0 numiptent 10 16 128 128 0
Fields
The field uid
is a numeric identifier of the container[1].
For accountable parameters, the field held
shows the current counter for the container (resource “usage”), and the field maxheld
shows the counter's maximum for the last accounting period. The accounting period is usually the lifetime of the container[2].
The field failcnt
shows the number of refused “resource allocations” for the whole lifetime of the process group.
The barrier
and limit
fields are resource control settings. For some
parameters, only one of them may be used, for some parameters — both.
These fields may specify limits or guarantees, and the exact meaning of
them is parameter-specific. Description of each parameter in UBC parameters
contains information about the difference between the barrier
and
the limit
for the parameter.
Units of measurement
As also discussed in UBC parameter units, all values related to parameters with
names starting with num
are measured in pieces. Values related to parameters
with names ending with pages are measured in memory pages (memory page is 4 kilobytes on
x86 and x86_64 hardware, others may differ). Values related to other parameters are measured in bytes.
Settings
General notes about parameters and their barrier and limit settings are provided in UBC parameters. Parameters not having limit setting have MAX_ULONG in the corresponding field.
Reading
If you want to print UBC values for a specific VE, the following construct can be helpful
egrep -A23 '^[[:space:]]+${CTID}:' /proc/user_beancounters
Here ${CTID}
is the ID of the VE you are interested in.
In case you want to print UBC values for a few containers at once, set CTID to something like (101|102|103)
.
Notes
- ↑ The name “uid” is related to the fact that OpenVZ Resource Management can be used without virtualization and containers.
- ↑ The lifetime of a container is the period from the start of the VE till the time all processes in the VE exited and all resources used by these processes are freed. Usually, the lifetime is just the time between the start and the stop of the container.