About using control groups (cgroups) for data domains

On Oracle Enterprise Linux 6 (Red Hat Enterprise Linux Server release 6), Endeca Server has a new option to use cgroups to limit the total memory usage of Dgraph processes hosted on the machine. Control groups (also known as cgroups) is a kernel resource-controlling feature of the Linux 6 operating system. They provide a way to define and allocate the system resources to one or more specific processes, while controlling, at a high-level, the utilization of these resources, and ensuring that the processes do not consume excessive resources. In this way, cgroups help avoid situations where the hosting machines run out of memory for their functioning and are forced to shut down due to their hosted applications taking over all available resources on the machine.

For more information on cgroups, see the section on using cgroups in the Red Hat Enterprise Linux 6 Resource Management Guide, available from the Oracle Linux Documentation: http://linux.oracle.com/documentation/OL6/Red_Hat_Enterprise_Linux-6-Resource_Management_Guide-en-US.pdf.

In the context of the Endeca Server, cgroups can be utilized on the hosting machines, if the Endeca Server is deployed on Linux 6 and if you enable cgroups in the Endeca Server. Once you enable cgroups after the installation, the Endeca Server relies on this mechanism to allocate resources to all data domains it is hosting. The following statements describe the overall strategy Endeca Server utilizes to allocate its resources (with and without cgroups).

The limit on memory and threads consumption in the Endeca Server is enforced with the following methods:
Important: If you are planning to deploy a large number of self-service applications in the Endeca Server, to increase the allocation guarantees and ensure that Endeca Server nodes continue to operate even when many data domains are provisioned, you are strongly encouraged to deploy Endeca Servers on Oracle Linux 6 or RHEL 6, which both allow Endeca Server to utilize cgroups.