Difference between revisions of "UBC parameters"

From OpenVZ Virtuozzo Containers Wiki
Jump to: navigation, search
(created (not finished yet))
 
(LONG_MAX)
 
(13 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{| class="wikitable"
+
{{UBC toc}}
! Name !! Description
+
 
|-
+
All the existing parameters are listed in the [[UBC parameters table]].
| colspan="2" align="center" | Primary parameters
+
 
|-
+
By importance, the parameters are divided into 3 groups: [[UBC primary parameters|primary parameters]],
| numproc        || Number of processes and threads.
+
[[UBC secondary parameters|secondary parameters]] and [[UBC auxiliary parameters|auxiliary parameters]].
|-
+
More detailed description of the parameters and the resource control
| numtcpsock    || Number of TCP sockets.
+
mechanisms governed by the parameters is provided in the appropriate articles.
|-
+
 
| numothersock  || Number of sockets other than TCP.
+
== General information about all parameters ==
|-
+
All resource control parameters have some common properties
| vmguarpages    || Memory allocation guarantee, in pages.
+
and some differences.
|-
+
 
| colspan="2" align="center" | Secondary parameters
+
<ol>
|-
+
<li>Most parameters provide both accounting of some system resource
| kmemsize      || Size of unswappable kernel memory, allocated for processes in this [[VE]].
+
and allow controlling its consumption.
|-
+
The exceptions are <code>physpages</code> (accounting only)
| tcpsndbuf      || Total size of TCP send buffers.
+
and <code>vmguarpages</code> (no accounting, control only), explained below.</li>
|-
+
 
| tcprcvbuf      || Total size of TCP receive buffers.
+
<li>Each parameter has 2 configuration variables, called <code>barrier</code> and <code>limit</code>.
|-
+
 
| othersockbuf  || Total size of UNIX-domain socket buffers, UDP and other datagram protocol send buffers.
+
Although both 2 variables are changeable, only one or none of them may be
|-
+
effectively used for the resource control for some parameters.
| dgramrcvbuf    || Receive buffers of UDP and other datagram protocols.
+
For example, <code>physpages</code> is an accounting-only parameter and both its
|-
+
configuration variables are not effectively used in the current OpenVZ
| oomguarpages   || The guaranteed amount of memory for the case the memory is “over-booked” (out-of-memory kill guarantee), in pages.
+
version.
|-
+
 
| privvmpages    || Memory allocation limit, in pages.
+
The description of each parameter explains the meaning of the <code>barrier</code>
|-
+
and the <code>limit</code> and what they should be set to if they are not
| colspan="2" align="center" | Auxiliary parameters
+
effectively used.
|-
+
 
| lockedpages    || Process pages not allowed to be swapped out (pages locked by <code>mlock(2)</code>).
+
In general, for all parameters the <code>barrier</code> should not be greater than
|-
+
the <code>limit</code>.</li>
| shmpages      || Total size of shared memory (IPC, shared anonymous mappings and <code>tmpfs</code> objects), in pages.
+
 
|-
+
<li>The parameters control
| physpages      || Total number of RAM pages used by processes.
+
how the resources are distributed between containers in terms of
|-
+
* limits, i.e.&nbsp;upper boundaries on what this container can consume, and
| numfile        || Number of open files.
+
* guarantees, i.e.&nbsp;mechanisms ensuring that this container can get the assigned “resources” regardless of the activity and the amount of resources required by other containers.
|-
+
 
| numflock      || Number of file locks.
+
The parameters containing “<code>guar</code>” in their names,
|-
+
i.e.&nbsp;<code>vmguarpages</code> and <code>oomguarpages</code> are container's
| numpty        || Number of pseudo-terminals.
+
guarantees.
|-
+
They guarantee availability of resources and certain service level
| numsiginfo    || Number of <code>siginfo</code> structures.
+
up to the value, specified by the <code>barrier</code>,
|-
+
and do not guarantee above the <code>barrier</code>.
| dcachesize    || Total size of <code>dentry</code> and <code>inode</code> structures locked in memory.
+
However, these parameters do not impose usage restrictions.
|-
+
The guarantees are discussed in more detail in the paragraphs describing
| numiptent      || Number of NETFILTER (IP packet filtering) entries.
+
these parameters.
|}
+
 
 +
The <code>limit</code> of <code>vmguarpages</code> and <code>oomguarpages</code> should be
 +
set to the maximal value [[LONG_MAX]].
 +
</li>
 +
 
 +
<li>
 +
For some resource limiting parameters, such as <code>kmemsize</code>,
 +
both <code>barrier</code> and <code>limit</code> settings are effectively used.
 +
If the resource usage exceeds the <code>barrier</code> but doesn't exceed the
 +
<code>limit</code>, vital operations (such as process stack expansion)
 +
are still allowed to allocate new
 +
resources, and other ones are not allowed.
 +
A gap between the <code>barrier</code> and the <code>limit</code> gives applications
 +
better chances to handle resource shortage gracefully.
 +
 
 +
For other resource limiting parameters, such as <code>numproc</code>,
 +
<code>barrier</code> and <code>limit</code> should be set to the same value.
 +
</li>
 +
 
 +
<li>
 +
Each parameter has “natural units of measurement” — the units
 +
of measurement of values shown via <code>/proc/user_beancounters</code> interface and accepted by [[vzctl]].
 +
Values related to parameters with names starting with <code>num</code> are measured
 +
in pieces.
 +
Values related to parameters with names ending with <code>pages</code> are measured
 +
in memory pages (memory page is equal to 4 kilobytes on IA-32 hardware).
 +
The remaining values (parameters ending with <code>size</code> and <code>buf</code>)
 +
are measured in bytes. See more at [[UBC parameter units]].
 +
</li>
 +
 
 +
</ol>
 +
 
 +
The properties of parameters are summarized in [[UBC parameter properties]].
 +
 
 +
{{Note|Continue reading with [[UBC primary parameters]], [[UBC secondary parameters]] and [[UBC auxiliary parameters]].}}

Latest revision as of 13:48, 25 January 2011

User Beancounters
Definition
/proc/user_beancounters
/proc/bc/
General information
Units of measurement
VSwap
Parameters description
Primary parameters
numproc, numtcpsock, numothersock, vmguarpages
Secondary parameters
kmemsize, tcpsndbuf, tcprcvbuf, othersockbuf, dgramrcvbuf, oomguarpages, privvmpages
Auxiliary parameters
lockedpages, shmpages, physpages, numfile, numflock, numpty, numsiginfo, dcachesize, numiptent, swappages
Internals
User pages accounting
RSS fractions accounting
On-demand accounting
UBC consistency
Consistency formulae
System-wide configuration
vzubc(8)
Configuration examples
Basic
Derived
Intermediate configurations
Tables
List of parameters
Parameter properties
Consistency
Config examples

All the existing parameters are listed in the UBC parameters table.

By importance, the parameters are divided into 3 groups: primary parameters, secondary parameters and auxiliary parameters. More detailed description of the parameters and the resource control mechanisms governed by the parameters is provided in the appropriate articles.

General information about all parameters[edit]

All resource control parameters have some common properties and some differences.

  1. Most parameters provide both accounting of some system resource and allow controlling its consumption. The exceptions are physpages (accounting only) and vmguarpages (no accounting, control only), explained below.
  2. Each parameter has 2 configuration variables, called barrier and limit. Although both 2 variables are changeable, only one or none of them may be effectively used for the resource control for some parameters. For example, physpages is an accounting-only parameter and both its configuration variables are not effectively used in the current OpenVZ version. The description of each parameter explains the meaning of the barrier and the limit and what they should be set to if they are not effectively used. In general, for all parameters the barrier should not be greater than the limit.
  3. The parameters control how the resources are distributed between containers in terms of
    • limits, i.e. upper boundaries on what this container can consume, and
    • guarantees, i.e. mechanisms ensuring that this container can get the assigned “resources” regardless of the activity and the amount of resources required by other containers.
    The parameters containing “guar” in their names, i.e. vmguarpages and oomguarpages are container's guarantees. They guarantee availability of resources and certain service level up to the value, specified by the barrier, and do not guarantee above the barrier. However, these parameters do not impose usage restrictions. The guarantees are discussed in more detail in the paragraphs describing these parameters. The limit of vmguarpages and oomguarpages should be set to the maximal value LONG_MAX.
  4. For some resource limiting parameters, such as kmemsize, both barrier and limit settings are effectively used. If the resource usage exceeds the barrier but doesn't exceed the limit, vital operations (such as process stack expansion) are still allowed to allocate new resources, and other ones are not allowed. A gap between the barrier and the limit gives applications better chances to handle resource shortage gracefully. For other resource limiting parameters, such as numproc, barrier and limit should be set to the same value.
  5. Each parameter has “natural units of measurement” — the units of measurement of values shown via /proc/user_beancounters interface and accepted by vzctl. 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 equal to 4 kilobytes on IA-32 hardware). The remaining values (parameters ending with size and buf) are measured in bytes. See more at UBC parameter units.

The properties of parameters are summarized in UBC parameter properties.

Yellowpin.svg Note: Continue reading with UBC primary parameters, UBC secondary parameters and UBC auxiliary parameters.