Re: Using Cgroups in CentOS-7

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



On Tue, May 18, 2021 at 08:33:37AM +0000, Gestió Servidors wrote:
> I want to limit CPUQuota and Memory using "Cgroups". After reading
> some documents, it seems I need to modify "user.slice" systemd file
> adding "CPUQuota=25%" (for example) but, after it, if I run a
> "stress" with other user (not "root"), stress process takes 100%
> CPU. I have noticed that rebooting system non-root user has % CPU
> limited... but also root... so is it possible to configure that
> limits to all users but non root? 

Make sure you also turn on CPUAccounting=true.

Unfortunately, if you put any CPUQuota settings in user.slice, it will
apply it as a group to all users (including root).  So, every logged
in user, in total, will not be able to use more than 25%, not
per-user.  (so, if two users start stressing the CPU, they'll each
only be able to get around 12.5% each)

CentOS 7 doesn't have a mechanism to set per-user CPU quota, that
functionality wasn't introduced into a later version of systemd (it
does work in CentOS 8, use user-.slice which is a "template" for
user-1000.slice, user-1001.slice, user-9999999.slice, etc.)

You can always set the resource control settings per-user by
specifically writing a user-1000.slice, user-1001.slice, etc.  
What I did was write a systemd service that subscribed to the dbus
messages for logins and activated the CPUQuota as the user logged in
using systemctl --runtime.  I had tens of thousands of users logging
in via Active Directory, which changed constantly, so I couldn't
hard-code anything.

I suggest using the 'systemd-cgtop' command to look at what unit is
using resources, it is helpful for debugging.

-- 
Jonathan Billings <billings@xxxxxxxxxx>
_______________________________________________
CentOS mailing list
CentOS@xxxxxxxxxx
https://lists.centos.org/mailman/listinfo/centos




[Index of Archives]     [CentOS]     [CentOS Announce]     [CentOS Development]     [CentOS ARM Devel]     [CentOS Docs]     [CentOS Virtualization]     [Carrier Grade Linux]     [Linux Media]     [Asterisk]     [DCCP]     [Netdev]     [Xorg]     [Linux USB]


  Powered by Linux