Difference between revisions of "UBC consistency check"
m (fix ubc proc file name) |
Botinki Kira (talk | contribs) m (Robot: Automated text replacement (-Virtual Environment +container)) |
||
Line 3: | Line 3: | ||
System resource control parameters have certain interdependencies. Constraints on the parameter settings are listed below. Indexes <code>bar</code> and <code>lim</code> in the formulae below mean the barrier and the limit of the parameters, respectively. | System resource control parameters have certain interdependencies. Constraints on the parameter settings are listed below. Indexes <code>bar</code> and <code>lim</code> in the formulae below mean the barrier and the limit of the parameters, respectively. | ||
− | Configuration of resource control parameters for a | + | Configuration of resource control parameters for a container |
is invalid if these constraints are not satisfied. The best way to ensure the | is invalid if these constraints are not satisfied. The best way to ensure the | ||
validity of the configuration is to use {{man|vzcfgvalidate|8}} utility. | validity of the configuration is to use {{man|vzcfgvalidate|8}} utility. | ||
Line 11: | Line 11: | ||
The configured limits can be checked through | The configured limits can be checked through | ||
* <code>/proc/user_beancounters</code> interface; | * <code>/proc/user_beancounters</code> interface; | ||
− | * | + | * container configuration files in <code>/etc/vz/conf/</code> directory. |
Line 20: | Line 20: | ||
This constraint is important for reliable work of applications in the | This constraint is important for reliable work of applications in the | ||
− | + | container. | |
If it is not satisfied, applications will start to fail at the middle of | If it is not satisfied, applications will start to fail at the middle of | ||
operations instead of failing at the moment of spawning more processes, | operations instead of failing at the moment of spawning more processes, |
Revision as of 10:40, 11 March 2008
|
System resource control parameters have certain interdependencies. Constraints on the parameter settings are listed below. Indexes bar
and lim
in the formulae below mean the barrier and the limit of the parameters, respectively.
Configuration of resource control parameters for a container is invalid if these constraints are not satisfied. The best way to ensure the validity of the configuration is to use vzcfgvalidate(8) utility.
All the interdependencies discussed below and their importance are summarized in UBC interdependencies table.
The configured limits can be checked through
/proc/user_beancounters
interface;- container configuration files in
/etc/vz/conf/
directory.
Contents
- 1 kmemsize should be enough for the expected number of processes
- 2 Memory allocation limits should not be less than the guarantee
- 3 Send buffers should have enough space for all sockets
- 4 Other TCP socket buffers should be big enough
- 5 UDP socket buffers should be big enough if the system is not tight on memory
- 6 Number of file limit should be adequate for the expected number of processes
- 7 The limit on the total size of dentry and inode structures locked in memory should be adequate for allowed number of files
- 8 Barrier should be less or equal than limit
kmemsize should be enough for the expected number of processes
(avnumproc
here stands for the expected average number of processes).
This constraint is important for reliable work of applications in the container. If it is not satisfied, applications will start to fail at the middle of operations instead of failing at the moment of spawning more processes, and the application abilities to handle resource shortage will be very limited.
Memory allocation limits should not be less than the guarantee
If this constraint is not satisfied, vmguarpages
will not work.
Send buffers should have enough space for all sockets
These constraints are also important. If they are not satisfied, transmission of data over the sockets may hang in some circumstances.
Other TCP socket buffers should be big enough
Selecting the left side equal to the right side in the inequalities above ensures minimal performance of network communications. Increasing the left side will increase performance to certain extent.
UDP socket buffers should be big enough if the system is not tight on memory
These constraints are desired, but not essential. Big enough buffers for UDP sockets improve reliability of datagram delivery. However, note that if the UDP traffic is so bursty that it needs larger buffers, the datagrams will likely be lost not because of resource control limits, but because of other memory and performance limitations.
Number of file limit should be adequate for the expected number of processes
Note that each process after execve(2)
system call
requires a file for each loaded shared library.
Too low numfile
limit will increase the chances of failures
during execve(2)
call with diagnostics not clear
for the users.
The limit on the total size of dentry
and inode
structures locked in memory should be adequate for allowed number of files
Too low dcachesize
limit will increase the chances of
file operation refusals not expected by applications.
Barrier should be less or equal than limit
In addition to the conditions listed above,
should be maintained for each parameter.