- Lab
-
Libraries: If you want this lab, consider one of these libraries.
- Cloud

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.

Lab Info
Table of Contents
-
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
-
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
-
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
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.