Een systeem dat te weinig fysiek geheugen (RAM) heeft, loopt aanzienlijk langzamer, omdat processen worden verplaatst tussen het RAM en swap. Als een Linux-systeem langzaam begint te werken, is een van de eerste probleemoplossingstaken het vrijmaken van fysiek geheugen.

Er zijn meerdere tools beschikbaar om het geheugengebruik op een Linux-systeem, inclusief top, te controleren, waarover we hebben gesproken. Smem is een ander hulpmiddel dat wordt gebruikt voor het controleren van geheugengebruik. Naast het weergeven van het geheugengebruik van processen op de opdrachtregel, kan smem ook een met kleur gecodeerde taart- en / of staafdiagram weergeven. Met smem kun je eenvoudig het geheugengebruik op je Linux-systeem visualiseren.

Installatie

Op Debian- en Ubuntu-systemen kan smem vanuit de repositories met het commando worden geïnstalleerd

 sudo apt-get install smem 

Controleer het geheugengebruik

Als smem wordt uitgevoerd als een onbevoegde gebruiker, wordt het geheugen weergegeven dat wordt gebruikt door alle processen die met de huidige gebruikers-ID zijn gestart en die door PSS zijn gerangschikt van minst naar de meesten.

 SMEM 

Standaard zijn er zeven kolommen, de proces-ID, de gebruikersnaam, de opdracht die wordt gebruikt om het proces te starten, de hoeveelheid swapruimte die aan het proces is toegewezen en USS, PSS en RSS.

RSS

RSS (Resident-setgrootte) is het totale geheugen dat in een RAM-geheugen wordt bewaard voor een proces. Dit omvat het geheugen toegewezen aan gedeelde bibliotheken die door het proces worden gebruikt, hoewel gedeelde bibliotheken kunnen worden gebruikt door meerdere processen, terwijl ze slechts eenmaal in het geheugen worden geladen. RSS is daarom geen nauwkeurige weergave van het geheugen dat door een bepaald proces wordt gebruikt.

PSS

PSS (Proportionele setgrootte) deelt daarentegen het geheugen dat is toegewezen aan een gedeelde bibliotheek over de processen die het gebruiken. Als drie processen een gedeelde bibliotheek met zestig pagina's gebruiken, draagt ​​de bibliotheek dus twintig pagina's bij aan de PSS van elk van de processen. De totale PSS is meestal ongeveer gelijk aan de totale RAM van het systeem. Wanneer een proces dat een bibliotheek deelt echter wordt gedood, is de PSS die voor het proces is gerapporteerd niet gelijk aan het totale geheugen dat is vrijgegeven.

USS

USS (Unieke setgrootte) verwijst naar het totale unieke geheugen voor een proces. Dit omvat niet het geheugen van gedeelde bibliotheken. Wanneer een proces wordt gedood, verwijst de USS naar het werkelijke geheugen dat zou worden vrijgegeven. Als gevolg hiervan is de USS de waarde om te bekijken als u vermoedt dat een proces een geheugenlek heeft.

Als u smem als root uitvoert, worden alle processen voor alle gebruikers op het systeem weergegeven.

 sudo smem 

Visualiseer het gebruik van het geheugen

Een gevisualiseerd rapport is vrijwel zeker gemakkelijker te lezen dan op tekst gebaseerde resultaten. Met Smem kunt u het geheugengebruik bekijken als een cirkeldiagram of een staafdiagram.

Om een ​​staafdiagram voor PSS, USS en RSS van de processen van de huidige gebruiker te bekijken, voert u de volgende opdracht uit:

 smem --bar naam -c "pss uss rss" 

Bedenk dat de PSS een nauwere weergave is van het totale geheugen dat beschikbaar is op het systeem. Om een ​​cirkeldiagram hiervan te bekijken, gebruikt u de volgende opdracht:

 smem --pie naam 

Om een ​​cirkeldiagram van RSS te bekijken, gelabeld op naam:

 smem --pie name -s rss 

Met smem kunt u gemakkelijk het geheugen bekijken dat wordt gebruikt door toepassingen en processen op uw systeem, met behulp van een handig cirkeldiagram met kleurencodes of een staafdiagram. Zoals algemeen wordt gezegd, is een foto meer dan duizend woorden waard. Het lijkt erop dat de smem-ontwikkelaars het daarmee eens zijn.