Tutoriel Linux

Opmerkelijke verbeteringen in geheugenbeheer in Linux 6.18

Débutant7 min de lecture

Optimalisatie van de swapstrategie in Linux 6.18

Het geheugenbeheer onder Linux heeft met kernelversie 6.18 een aanzienlijke sprong voorwaarts gemaakt. Een van de belangrijkste verbeteringen betreft de verbeterde clusterscanstrategie in de swapcode. Dit mechanisme is cruciaal: het bepaalt hoe geheugenpagina’s worden geselecteerd voor overdracht naar de schijf wanneer het RAM-geheugen zijn limiet bereikt. Door deze methode te verfijnen, kan Linux grote geheugentoewijzingen beter beheren in scenario’s met een hoge gelijktijdige toegang.

Een concreet voorbeeld illustreert deze vooruitgang: een engineer van Tencent evalueerde de prestaties van een kernelcompilatie met 96 parallelle taken, gebruikmakend van 10 GB zRAM (gecomprimeerd RAM) en 64 KB gigantische transparante pagina’s (mTHP). Het resultaat was spectaculair, met een reductie van de systeemtijd van bijna 50% en een aanzienlijke afname van het aantal swapfouten. Deze prestatiewinst weerspiegelt een efficiënter gebruik van RAM en swapruimte, wat bijdraagt ​​aan de stabiliteit van de kernel onder zware omstandigheden.

Bovendien is deze optimalisatie bijzonder welkom in multitasking- en serveromgevingen waar continu gebruik wordt gemaakt van swapruimte. Het optimaliseren van swapbeheer is niet alleen gekoppeld aan pure prestaties, maar ook aan de procesmanager Dit hangt af van de beschikbaarheid van geheugenbronnen. Een beter swapbeleid voorkomt langdurige deadlocks als gevolg van bufferverzadiging.

  • Verbeterde clusterscanning om de verwerkingstijd tijdens grote uitwisselingen te verkorten.
  • Verbeterde integratie met zRAM en ondersteuning voor Transparent Huge Pages (THP)
  • Minder schrijffouten naar de swap-partitie, waardoor vertragingen en systeemcrashes worden voorkomen.
  • Prestatieoptimalisatie bij compilaties en zware workloads

Deze verbeteringen pakken problemen aan die vaak voorkomen op machines die Solaris vervangen door Linux, waar een verhoogde werkbelasting regelmatig leidt tot vertragingen als gevolg van geheugenbeheer. Deze ontwikkeling markeert daarom een ​​belangrijke stap in desysteemoptimalisatie voor recente Linux-distributies. Om dieper in te gaan op dit technische aspect, is het belangrijk op te merken dat de verwijdering van de Zpool-indirectielaag, die ook in deze versie is doorgevoerd, helpt om het kritieke pad van geheugenbewerkingen in de kernel te vereenvoudigen en te versnellen.

Ontdek hoe u geheugen effectief kunt beheren onder Linux 6.18: tips, tools en best practices om de prestaties en stabiliteit van uw systeem te optimaliseren.

Nieuwe functies voor geheugenpagina’s in de Linux-kernel

De Linux 6.18-kernel introduceert ook het concept van kernelbestandspagina’s via aan bestanden gekoppelde folio’s. Deze evolutie conceptualiseert het beheer van geheugenpagina’s die aan bestanden zijn gekoppeld op een andere manier, waardoor nauwkeurigere controle en optimalisatie van geheugentoegang in lees-/schrijfmodus mogelijk wordt.

In de praktijk berust dit mechanisme op het structureren van geheugenpagina’s in folio’s, een grotere toewijzingseenheid die beter aansluit op de behoeften van moderne processoren. Hierdoor kan het systeem RAM efficiënter gebruiken tijdens I/O-bewerkingen. Het paginacachepad, een belangrijk element om herhaalde schijftoegang te voorkomen, heeft geprofiteerd van kleine optimalisaties om grote leesbewerkingen te versnellen.

Dit herontwerp verbetert de Linux-prestaties Voor typische servers en werkstations, waar intensieve bestandstoegang de norm is, zullen databases of bestandsservers bijvoorbeeld een verbeterde doorvoer ervaren dankzij de lagere overheadkosten die gepaard gaan met fijnmazig geheugenpagina-beheer.

  • Introductie van aan bestanden gekoppelde folio’s ter verbetering van het paginabeheer.
  • Het geheugencache optimaliseren voor belangrijke leesbewerkingen.
  • Minder schijfaanvragen dankzij slimmer cachebeheer.
  • Aanpassing aan multi-core architecturen door verbeterde parallelisatie in geheugenbeheer

Deze ontwikkelingen ondermijnen echter sommige eerdere optimalisatiegewoonten en kunnen systeembeheerders ertoe aanzetten hun afstemmingspraktijken te herzien, met name door de opkomst van mechanismen zoals transparante pagina’s, waarvan het gedeeltelijk uitschakelen nu mogelijk is op procesniveau dankzij de PR_SET_THP_DISABLE-extensie. Deze functie geeft applicatieontwikkelaars en serverbeheerders nauwkeurige controle om de “altijd actieve” THP uit te schakelen ten gunste van gedrag op aanvraag.gek mode).

Een dergelijke granulariteit voorkomt de negatieve gevolgen van THP voor bepaalde specifieke workloads, terwijl de voordelen voor het systeem als geheel behouden blijven en de flexibiliteit in dynamisch geheugenbeheer wordt vergroot. Dit werk maakt deel uit van een alomvattende aanpak voor de continue verbetering van de kernel, die al is besproken in verband met Rust-drivers in de kernel voor verbeterde coderobuustheid.Details over de integratie van Rust in Linux).

Verbeterd swapbeheer en de impact daarvan op de slaapstand en stabiliteit.

Swap, de schijfruimte die is gereserveerd om het overvolle RAM-geheugen te compenseren, krijgt in Linux 6.18 een versterkte rol met de voorlopige introductie van tafels wisselen als swapcache. Deze nieuwe structuur maakt een betere organisatie en optimalisatie van de swaptoegang mogelijk, wat cruciaal is in een context waarin dewinterslaap De kwaliteit van het swapbeheer is direct van belang voor het behoud van de RAM-status.

Het organiseren van het systeem in tabellen verbetert de responsiviteit tijdens swap-lees- en -schrijfoperaties, waardoor het risico op instabiliteit of lange opstarttijden wordt verminderd. Het helpt ook de problemen te verlichten waarmee Linux-systemen te maken krijgen bij multitasking op machines met trage of volle schijven. Dit is een belangrijke factor in de robuustheid van de Linux-kernel, met name in professionele omgevingen.

Tegelijkertijd is het optimaliseren van geheugenproblemen met behulp van ZRAM-toegang ook belangrijk, omdat dit type gecomprimeerd geheugen de swap-/systeemuitwisselingen versnelt en tegelijkertijd de slijtage van SSD’s of mechanische harde schijven beperkt. Het systeem behoudt daardoor soepele prestaties, zelfs bij zware geheugenbelasting.

  • Introductie van swaptabellen voor soepeler en stabieler swappen.
  • Dankzij deze structuur zijn de ondersteuning en prestaties voor de slaapstand verbeterd.
  • Kortere toegangstijd en verbeterde systeemresponsiviteit
  • Verbeterd gebruik van gecomprimeerd zRAM-geheugen om de prestaties te optimaliseren. geheugenbeheer

Deze verbeteringen komen in een context van toenemend Linux-gebruik voor kritieke servers en mobiele werkstations, waar de balans tussen geheugentoegangssnelheid en kernelstabiliteit van cruciaal belang is. Ze maken ook deel uit van een lange lijst optimalisaties die gericht zijn op het verminderen van de impact van Spectre/Meltdown en vergelijkbare beveiligingslekken, met name op Zen-architecturen, die constant evolueren met de nieuwste kernelupdates.Meltdown Lite attenuatiebeheer).

Ontdek hoe geheugenbeheer werkt onder Linux 6.18: optimalisatie, toewijzing, RAM-gebruik en resourcebewaking voor betere prestaties.

Verbeteringen aan de rol van de ‘killer OOM’ en geheugenallocatie in Rust

Een van de opvallende kenmerken van Kernel 6.18 zijn de verbeteringen die zijn aangebracht aan de Out-Of-Memory Killer (OOM Killer)De automatische geheugenbeheerder is verantwoordelijk voor het vrijgeven van geheugen wanneer het systeem zich in een kritieke situatie bevindt. Deze essentiële component voor stabiliteit voorkomt dat de server of het werkstation volledig vastloopt door geheugenuitputting.

De ontwikkelaars hebben de logica voor het selecteren van slachtofferprocessen en de reactiesnelheid verfijnd, waardoor voortijdige beëindigingen worden beperkt en het dynamische RAM-beheer tijdens piekbelastingen wordt verbeterd. De effectiviteit van de OOM Killer heeft een directe invloed op de prestaties. kernstabiliteit en de continuïteit van de dienstverlening bij grote vraag.

Bovendien gaat de toenemende prominentie van de Rust-taal in de Linux-kernel gepaard met een verbeterde integratie in het geheugenbeheer. Rust-abstracties voor Maple-boomdatastructuren zijn ontwikkeld om beter te voldoen aan de eisen van grafische stuurprogramma’s zoals Nouveau of het Nova-systeem.

  • Verbeteringen in de OOM Killer-algoritmen voor een betere processelectie.
  • Vermindering van onderbrekingen als gevolg van onnodige procesafbrekingen
  • Introductie van Rust-abstracties in geheugenbeheer en Maple-bomen
  • Verbeterde ondersteuning voor hardwarestuurprogramma’s via deze nieuwe abstracties.

Deze bijdrage effent de weg voor veiligere en robuustere Linux-systemen, waardoor de ontwikkeling van bedrijfskritische applicaties wordt vergemakkelijkt en tegelijkertijd betrouwbaardere en efficiëntere geheugencode mogelijk wordt. De community volgt deze belangrijke ontwikkeling op de voet, die nu wordt beschouwd als een doorslaggevende stap voor de Linux-kernel. Een technisch voorbeeld hiervan is te vinden in dit zeer uitgebreide artikel over…De integratie van Rust in de kernel.

Micro-optimalisaties en verwijdering van overbodige lagen voor een lichtere kernel.

Tot slot bevat Linux 6.18 verschillende gerichte micro-optimalisaties die, in combinatie, de prestaties verbeteren. procesmanager en de algehele systeemprestaties. Het beste voorbeeld hiervan is de verwijdering van de Zpool-indirectielaag, die nu als overbodig wordt beschouwd. De eliminatie ervan vereenvoudigt het pad voor gegevenstoegang in het geheugen, waardoor de latentie en het geheugenverbruik van de kernel worden verminderd.

Op vergelijkbare wijze werden kleine aanpassingen gedaan om de leesbewerkingen van de paginacache te optimaliseren, waardoor de tijd die nodig is voor grote geheugentoegangen werd verkort. Deze optimalisaties, hoewel op papier misschien niet direct zichtbaar, dragen niettemin bij aan een lagere CPU-belasting en een betere responsiviteit op moderne Linux-systemen, van embedded systemen tot krachtige servers.

  • Het verwijderen van de Zpool-indirectielaag om de kernel lichter te maken.
  • Gerichte optimalisaties op kritieke leespaden in de cache.
  • Het balanceren van geheugenfuncties om de belasting van de CPU te verminderen.
  • Consolidatie van verbeteringen voor betere stabiliteit en efficiëntie

Deze micro-aanpassingen maken deel uit van een doorlopend kerneloptimalisatieproces, dat steeds noodzakelijker wordt door het toenemende gebruik van Linux op verschillende architecturen. Ze vormen een aanvulling op de eerder genoemde belangrijke functies en bevorderen een krachtige maar flexibele geheugenomgeving die moderne applicatieworkloads efficiënt afhandelt, met name die workloads die [onduidelijk – mogelijk “competitief”] vereisen. geheugenbeheer intensief en dynamisch.

Dit nauwgezette werk, hoewel minder zichtbaar, vormt de kern van de verwachte technische uitmuntendheid van Linux, die u in meer detail kunt ontdekken op snelle Linux-distributies die ten volle profiteren van deze vooruitgang.

Ontdek hoe geheugenbeheer evolueert in Linux 6.18: nieuwe functies, prestatieoptimalisatie en praktische tips voor beheerders en ontwikkelaars.