User`s guide

Managing Resources 114
Grouping Applications Inside Container
SLM provides a mechanism of classifying available applications (or processes representing
instances of these running applications) inside a Container, uniting them into certain groups, and
ensuring a sort of isolation among these groups. Such application grouping allows you to
separately control each application group and, if the Container exceeds its memory limit and
some application group inside this Container overuses the memory, to reduce the memory
consumption only by the corresponding application group rather than to impose memory
restrictions on the whole Container and all its applications. For example, this can help you keep
the remote SSH connection to your Container in the case of the apache Web server
misbehaviour or keep this Web service working if the 'dangerous' application is the sendmail
service.
In the current version of Parallels Server Bare Metal, all applications (processes) inside a
Container are by default included in one of the following groups:
'other' (also referred to as group 0): this group contains all the processes not included in
the 'daemons', 'httpd', and 'mysql' groups. The termination of any process belonging to
this group affects certain (usually uncritical) Container functionality only and does not lead
to the entire Container DoS (denial of service).
'daemons' (also referred to as group 1): this group includes init, rc, and all system
daemons (e.g. sshd). The 'daemons' group is the most important one and provides the
basis for the Container functioning.
'httpd' (also referred to as group 2): this group includes the apache Web server only. The
processes in this group and the 'mysql' one provide the main workload of any Container.
'mysql' (also referred to as group 3): this group includes the MySQL database server only.
The processes in this group and the 'httpd' one provide the main workload of any
Container.
By default, any new process inherits the group from its parent process. For example, all children
of the httpd process are placed to the 'httpd' group whereas all children of the 'mysql'
process are included in the 'mysql' group. However, the group of a process can be changed
during its forking and/or execution on the basis of special SLM pattern rules. The default SLM
pattern rules are specified in the /etc/vzslm.d/default.conf file on the server in the
table having the following four columns:
first_column: the name of the process to which the rule is to be applied.
second_column: a bitwise set of values defining the scheme on the basis of which the
process is to be moved to the corresponding group.
third_column: the group the process belongs to before the rule is
applied. The -1 value,
if specified, means any group.
fourth_column: the group where the process will be moved after the rule is applied.
The flags field represents a number containing one or several of the following bitwise values:
Hexadecimal
Notation
Binary Notation
Description
0x0001 |_0_|_0_|_0_|_0_|_0_|_0_|_0_|_1
_|
This bit, if set to 1,
indicates that the rule is
to be applied to the