The cart is empty

cGroups, short for Control Groups, is a kernel feature in Linux that allows for the management and limitation of system resources for processes. In the context of Virtual Private servers (VPS), cGroups enable system administrators to efficiently allocate and limit resources such as CPU, memory, network bandwidth, and disk I/O among running containers or virtual machines. This article provides a detailed overview of how to set up and utilize cGroups to optimize resource management on VPS.

Installation and Configuration of cGroups

Before using cGroups, it's essential to ensure that your system is up-to-date and that you have all necessary packages installed. In most Linux distributions, cGroups are part of the standard installation, but additional tools for better management and configuration may need to be installed.

  1. System Update:

    sudo apt-get update && sudo apt-get upgrade
    
  2. Installation of cGroups Tools:

    sudo apt-get install cgroup-tools
    

cGroups Configuration

Configuring cGroups involves creating and setting up control groups to which you can assign processes as needed.

  1. Creating a Control Group: The cgcreate command is used to create a new group. For example, to create a group named testgroup for limiting CPU and memory usage:

    sudo cgcreate -g cpu,memory:/testgroup
    
  2. Assigning Processes to the Group: Processes can be assigned to a group using the cgclassify command. For instance, to assign a process with PID 1234 to testgroup:
    sudo cgclassify -g cpu,memory:/testgroup 1234
    ​
  3. Setting Limits for the Group: Configuring limits is done by directly editing configuration files in the group directory. For example, to limit CPU usage to 20% for the testgroup:
    echo 20000 > /sys/fs/cgroup/cpu/testgroup/cpu.cfs_quota_us
    ​

    And to set a maximum memory limit of 512 MB:

    echo 512M > /sys/fs/cgroup/memory/testgroup/memory.limit_in_bytes
    

 

Monitoring and Management of cGroups

For monitoring and managing cGroups, you can use tools like htop with cGroups support or cgtop, which is a tool specifically designed for monitoring resource usage by groups.

  1. Installing htop with cGroups support:

    sudo apt-get install htop
    

    Run htop with enabled cGroups display support.

  2. Using cgtop for monitoring resource usage:

    sudo apt-get install htop

    cgtop provides a dynamic overview of resource usage by groups, including CPU, memory, and disk I/O.

Properly setting up and utilizing cGroups on VPS enables system administrators to efficiently manage resources, ensuring better performance and stability of services. With the flexibility of cGroups, you can fine-tune how resources are distributed among processes, providing greater control over your server's operation.