Featured resource
2025 Tech Upskilling Playbook
Tech Upskilling Playbook

Build future-ready tech teams and hit key business milestones with seven proven plays from industry leaders.

Check it out
  • Lab
    • Libraries: If you want this lab, consider one of these libraries.
    • Cloud
Google Cloud Platform icon
Labs

Restrict System Resource Usage with cgroups

The aim of this lab is to restrict system resource usage by utilizing cgroups. You need to limit the sum total usage of resources of containers to exactly 1 CPU. You also need to limit the sum total usage of resources of containers to 50% RAM. These limitations need to be imposed by creating a cgroup.

Google Cloud Platform icon
Lab platform
Lab Info
Level
Intermediate
Last updated
Sep 08, 2025
Duration
45m

Contact sales

By filling out this form and clicking submit, you acknowledge our privacy policy.
Table of Contents
  1. Challenge

    Create my_limits.slice in /etc/systemd/system/ and Set Resource Limits CPU on 50% Compute Capacity and RAM to 500M
    vim /etc/systemd/system/my_limits.slice 
    
    Description=my slice 
    Before=slices.target 
    
    [Slice]
    CPUAccounting=true 
    CPUQuota=50%
    MemoryAccounting=true
    MemoryLimit=500M
    
    ESC 
    :wq 
    ENTER 
    

    See more info at: http://man7.org/linux/man-pages/man5/systemd.resource-control.5.html

  2. Challenge

    Reload the Daemon and Run Two Python Containers for Testing with --cgroup-parent=my_limits.slice Parameter
    sudo systemctl daemon-reload 
    

    This is when you will need to log into two extra terminals, so that you have three total. Two will be for interacting with two python containers, and one will be for monitoring the system resource usage.

    In Terminal 1

    [cloud_user@server1 ]$ sudo docker run -rm -it --cgroup-parent=my_limits.slice docker.io/python 
    

    In Terminal 2

    [cloud_user@server2 ]$ sudo docker run --rm -it --cgroup-parent=my_limits.slice docker.io/python 
    

    In Terminal 3

    [cloud_user@server3 ]$ htop
    
  3. Challenge

    Run a Stress Test in All of the Containers

    In each of the two python containers run this code:

    import threading 
    
    def test():
      while True:
        1000*1000
    
    threading.Thread(target=test).start()
    threading.Thread(target=test).start()
    threading.Thread(target=test).start()
    threading.Thread(target=test).start()
    threading.Thread(target=test).start()
    

    Monitor the results in Terminal 3, and you will see that the sum total resource usage of the containers will not exceed the given limits.

About the author

Pluralsight Skills gives leaders confidence they have the skills needed to execute technology strategy. Technology teams can benchmark expertise across roles, speed up release cycles and build reliable, secure products. By leveraging our expert content, skill assessments and one-of-a-kind analytics, keep up with the pace of change, put the right people on the right projects and boost productivity. It's the most effective path to developing tech skills at scale.

Real skill practice before real-world application

Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.

Learn by doing

Engage hands-on with the tools and technologies you’re learning. You pick the skill, we provide the credentials and environment.

Follow your guide

All labs have detailed instructions and objectives, guiding you through the learning process and ensuring you understand every step.

Turn time into mastery

On average, you retain 75% more of your learning if you take time to practice. Hands-on labs set you up for success to make those skills stick.

Get started with Pluralsight