If you have used linux resource management tool, you might be aware of fair control on resources like CPU, memory. In case you need to run an performance application which genuinely need higher share of CPU, then you must be feeling to know approach to do this.
Or think that you want to minimise impact of download of your app update file(which need good amount of CPU processing) on other apps running in the same machine, you will wish to reduce CPU usage for your app to minimal. In this way, other apps will have fair amount of CPU resources available while your app is downloading updates.
This document helps in this regard.
Control groups (cgroups) are a Linux kernel feature that allows you to specify how the kernel should allocate specific resources to a group of processes. With cgroups you can specify how much CPU time, system memory, network bandwidth, or combinations of these resources can be used by the processes residing in a certain group.
Compared to other approaches like the 'nice' command or /etc/security/limits.conf, cgroups are more flexible as they can operate on (sub)sets of processes (possibly with different system users).
Refer two instances of primesieve app CPU usage in below top command output. You will see that process with PID 10298 (cpu.shares=4096) is getting 4 times more CPU then process with PID 10324 (cpu.shares=1024)
http://blog.scoutapp.com/articles/2014/11/04/restricting-process-cpu-usage-using-nice-cpulimit-and-cgroups
https://wiki.archlinux.org/index.php/cgroups
https://unix.stackexchange.com/questions/428317/where-are-systemds-configurations-for-cgroups