Hoe Linux Cgroups te configureren

Hoe Linux Cgroups Te Configureren



Weten en begrijpen welke processen verschillende systeembronnen verbruiken, maakt deel uit van uw taak als systeembeheerder. Gelukkig kun je met de Linux-kernel de bronnen toewijzen en beheren met behulp van de functie Control Groups (cgroups), maar je moet wel weten hoe je deze moet configureren.

Dit bericht bevat handleidingen voor het configureren van de Linux-cgroups. We zullen het definiëren en de voordelen ervan begrijpen. Bovendien zullen we zien hoe je de Linux-cgroups kunt configureren. Laten we beginnen!







Wat zijn C-groepen in Linux

De Linux-kernel biedt cgroups als een functie om het beheer van systeembronnen voor verschillende processen mogelijk te maken. Dankzij cgroups kan het beperken van de hoeveelheid systeembronnen die een proces of groepen processen kunnen gebruiken, monopolisering elimineren en ervoor zorgen dat een eerlijke toewijzing van bronnen mogelijk is. Cgroepen helpen de volgende rollen te spelen:



1. Toewijzing van middelen



Het primaire doel van cgroups is de toewijzing van middelen. U kunt snel de bronnen, zoals geheugen, netwerkbandbreedte, CPU, enz., toewijzen aan elk proces of elke groep processen. Het idee is om de prestaties van uw systeem te verbeteren door ervoor te zorgen dat geen enkel proces de systeembronnen monopoliseert. U krijgt stabiele systeemprestaties door de bronnen eerlijk te verdelen.





2. Prioritering

Stel u een situatie voor waarin u taken of processen met hoge prioriteit heeft. In een dergelijk geval moet u prioriteit geven aan uw systeembronnen voor dergelijke taken om ervoor te zorgen dat ze aan de verwachtingen voldoen, vooral als er sprake is van een zware belasting. Als u bijvoorbeeld een latentiegevoelig proces of werk hebt dat zwaar CPU-gebruik vereist, kunt u prioriteiten stellen en meer bronnen toewijzen met behulp van cgroups.



3. Isolatie van hulpbronnen

Door u de grenzen van de bronnen te laten bepalen, kunt u met cgroups de bronnen isoleren en limieten afdwingen. Op die manier kunt u interferentie tussen applicaties voorkomen, vooral wanneer verschillende applicaties of gebruikers hetzelfde systeem gebruiken.

4. Ondersteuning voor containerisatie

Wanneer u werkt met containerisatie-opties zoals Docker, waarbij u de containers zo moet instellen dat ze in geïsoleerde omgevingen worden uitgevoerd, kunt u met cgroups lichtgewicht omgevingen creëren. U kunt de bronnen op de geïsoleerde host veilig en efficiënt toewijzen.

5. Toezicht op hulpbronnen

Met behulp van cgroup kunt u statistieken verkrijgen over verschillende bronnen die zijn toegewezen aan processen op uw systeem. De statistieken die u verzamelt, zijn ideaal voor het analyseren van uw systeemprestaties. Op die manier kunt u de knelpunten in de hulpbronnen identificeren, zodat u de verdeling van de hulpbronnen kunt plannen. Deze inzichten zijn ideaal om te begrijpen hoe de applicaties presteren en hoe u ze kunt optimaliseren.

Hoe de Linux C-groepen te configureren

De toenemende populariteit van containerisatie maakt de weg vrij voor meer gebruik van Linux-cgroups om te helpen bij het resourcebeheer en de monitoring. Tot nu toe hebben we de cgroepen gedefinieerd en de voordelen ervan gezien.

Laten we nu eens kijken hoe we het kunnen configureren. We werken met Ubuntu 22.04, maar deze handleiding werkt met andere Linux-distributies. We verdelen het proces in twee delen: installatie en configuratie.

Deel 1: Installatie

Laten we beginnen met het installeren van de cgroups op ons systeem met de volgende stappen:

Stap 1: Installeer de Cgroups-tools

Begin met het bijwerken van de apt-repository om de weg vrij te maken voor de installatie.

sudo passende update



Voer vervolgens de volgende installatieopdracht uit om de cgroup-tools te installeren:

sudo geschikt installeren cgroup-tools



U kunt verifiëren dat de cgroup is geïnstalleerd door deze te controleren met de opdracht dpkg, zoals hieronder weergegeven:


We kunnen zien dat de installatie succesvol is.

Stap 2: Schakel de Cgroup-ondersteuning in

Na het installeren van de cgroup moet je de cgroup-ondersteuning inschakelen in de GRUB van je systeem. Gebruik daarvoor een teksteditor en open het GRUB-configuratiebestand. In dit geval gebruiken we nano.

sudo nano / enz / standaard / eten



Zodra het is geopend, zoekt u de volgende regel:

GRUB_CMDLINE_LINUX_DEFAULT =”rustige plons”



Wijzig het om de “cgroup_enable=memory” op te nemen.

GRUB_CMDLINE_LINUX_DEFAULT =”rustige plons cgroup_enable =geheugen”



Sla het bestand op en sluit af.

Stap 3: GRUB bijwerken

Nadat u de GRUB-configuratie heeft gewijzigd, moet u deze bijwerken voordat de wijzigingen van kracht worden. Toch moet u uw systeem opnieuw opstarten om de wijzigingen volledig door te voeren.

Gebruik de volgende opdrachten:

sudo update-grub



Start ten slotte uw systeem opnieuw op.

sudo opnieuw opstarten


Stap 4: Maak een montagepunt

Zodra het systeem opnieuw is opgestart, maakt u een map aan die u kunt gebruiken als uw koppelpunt voor het cgroup-bestandssysteem. Laten we onze map maken als /sys/fs/cgroup als volgt:

sudo mkdir / sys / fs / cgroep



Nu het mountpunt is gemaakt, mount je het cgroup-bestandssysteem met de controller van je keuze. Sommige controllers die u kunt gebruiken zijn onder meer geheugen, CPU, bikio, vriezer, apparaten, enz. Laten we het geheugen voor dit voorbeeld gebruiken.

Dit is de syntaxis die u moet gebruiken:

sudo monteren -T cgroep -O < controleur > cgroep / sys / fs / cgroep


Vervang de door de doelcontroller die u wilt maken om te gebruiken in het cgroup-bestandssysteem.


Wij hebben de onze al gemonteerd. In uw geval krijgt u de melding dat de mount succesvol is.

Controleer of de cgroup-mount bestaat en correct is aangekoppeld door de volgende opdracht uit te voeren met behulp van de opdracht 'grep':

monteren | greep cgroep



Stel dat je alle stappen hebt gevolgd. U krijgt een uitvoer die vergelijkbaar is met die in de vorige uitvoer, die bevestigt dat uw cgroup-mount bestaat zoals u deze hebt gemaakt.

Deel 2: Configuratie

We hebben de cgroup-tools op ons Linux-systeem geïnstalleerd en een cgroup-mount gemaakt. Nu dat op zijn plaats is, is het laatste dat we moeten doen, ons verdiepen in het configureren van de Linux-cgroups. Laten we een voorbeeld geven om u te helpen begrijpen hoe dat uitpakt. Lees verder!

Hoe u de cgroups aanmaakt en configureert, hangt af van uw vereisten. Bovendien moet u eerst begrijpen welke controller u gaat gebruiken bij het maken van de cgroup-hiërarchieën. Nadat u de cgroup hebt gemaakt, betekent het configureren ervan dat u de toegang tot uw systeembronnen beperkt. Laten we het in twee stappen opsplitsen.

Stap 1: Maak de Cgroup-hiërarchieën

Zodra u het cgroup-bestandssysteem hebt aangekoppeld, moet u cgroup-hiërarchieën maken, afhankelijk van uw vereisten. Daarvoor gebruiken we de volgende syntaxis:

sudo mkdir / sys / fs / cgroep /< controleur >>< cgroepsnaam >


Stel dat we een cgroup met de naam “linuxhint” willen maken in onze geheugencontroller. Wij gaan als volgt te werk:

sudo mkdir / sys / fs / cgroep / geheugen / Linuxhint



Nu we de cgroup hebben gemaakt, gaan we verder en configureren deze door te definiëren welke parameters we eraan moeten toewijzen als onderdeel van het systeemresourcebeheer.

Stap 2: wijs de parameters toe

Elke controller wordt geleverd met verschillende parameters die u opgeeft, afhankelijk van de systeembron die u wilt toewijzen. Wanneer u een cgroup configureert, moet u dus weten welke parameters van de geselecteerde controller u gaat gebruiken.

Gebruik de volgende syntaxis in de configuratie:

echo < waarde > > / sys / fs / cgroep /< controleur >>< cgroepnaam >>< controller-parameter >


Hier is een voorbeeld van het configureren van de geheugen-cgroup die we eerder hebben gemaakt met de naam “linuxhint” om er een geheugenlimiet van 1 GB aan toe te wijzen. Daarvoor gebruiken we de parameter “memory.limit_in_bytes”. U kunt zoeken naar andere geheugenparameters die u kunt configureren.

We voeren onze opdracht als volgt uit:

echo 1G > / sys / fs / cgroep / geheugen / Linuxhint / geheugen.limiet_in_bytes



U kunt elke parameter opgeven die aansluit bij uw vereisten. Volg het proces dat we eerder hebben beschreven om elke controller in uw systeem te wijzigen, er cgroups voor te maken en deze vervolgens te configureren. U bent vrij om meer cgroups aan te maken en deze te configureren. Het wordt aanbevolen om de cgroups een naam te geven die overeenkomt met de naam van de controller waarop u zich wilt concentreren, zodat u ze gemakkelijk kunt onthouden.

Laten we nog een voorbeeld hebben waarin we een cgroup voor de CPU-controller maken. Begin met het maken van een cgroup-hiërarchie als volgt:

sudo mkdir / sys / fs / cgroep / CPU / Linux-cpu



Wijs vervolgens de parameterwaarden toe om de CPU-bronnen toe te wijzen op basis van uw behoefte. Laten we bijvoorbeeld werken met de cpu.cfs_period_us waarmee u de microsecondeduur kunt specificeren gedurende welke de toegang van een cgroup tot bronnen moet worden toegewezen. Laten we het in dit geval instellen op 1000 microseconden.


Dat is hoe je de Linux-cgroups maakt en configureert. De stappen kunnen enigszins verschillen, afhankelijk van de Linux-distributie die u gebruikt. Niettemin presenteert dit bericht de algemene stappen die u moet volgen.

Conclusie

Dit bericht concentreerde zich op Linux-cgroups. We begonnen met het begrijpen van wat de Linux-cgroups betekenen en welke voordelen het systeembeheerders biedt. Vervolgens leerden we de stappen die we moesten volgen om cgroups op Ubuntu 22.04 te installeren als deze nog niet is geïnstalleerd. Verder presenteerden we de stappen om de Linux cgroups te configureren, van het creëren van een mount point, tot het creëren van de cgroup, tot het configureren van de parameters. Hopelijk heb je geleerd hoe je de Linux-cgroups configureert. Probeer het en let goed op welke parameters u wijzigt om te voorkomen dat de prestaties van uw systeem worden verstoord.