Ett system som saknar tillräckligt med fysiskt minne (RAM) körs betydligt långsammare, eftersom processer flyttas mellan RAM och swap. Om ett Linux-system börjar springa långsamt, är ett av de första felsökningsuppgifterna att frigöra det fysiska minnet.

Det finns flera verktyg tillgängliga för att övervaka minnesanvändningen på ett Linux-system, inklusive topp, som vi har diskuterat. Smem är ett annat verktyg som används för att övervaka minnesanvändningen. Förutom att visa minnesanvändning av processer på kommandoraden kan smem också visa en färgkodad paj och / eller stapeldiagram. Med smem kan du enkelt visualisera minnesanvändning på ditt Linux-system.

Installation

På Debian- och Ubuntu-system kan smem installeras från förråd med kommandot

 sudo apt-get install smem 

Kontrollera minnesanvändning

Running smem som en icke-privilegierad användare visar det minne som används av alla processer som lanserats med det nuvarande användar-ID, beställt av PSS från minst till de flesta.

 SMEM 

Som standard finns det sju kolumner, process ID, användarnamn, kommandot som användes för att starta processen, hur mycket swap space som tilldelats processen, och USS, PSS och RSS.

RSS

RSS (Resident set size) är det totala minnet som hålls i RAM för en process. Detta inkluderar minnet allokerat till delade bibliotek som används av processen, även om delade bibliotek kan användas av flera processer medan de bara laddas en gång i minnet. RSS är därför inte en korrekt representation av minnet som används av en given process.

PSS

PSS (proportionell uppsättningstorlek) delar däremot minnet som är allokerat till ett delat bibliotek bland de processer som använder det. Om tre processer använder ett gemensamt bibliotek som har sextio sidor, kommer biblioteket att bidra med tjugo sidor till PSS för varje process. Den totala PSS är vanligen ungefär lika med systemets totala RAM. När en process som delar ett bibliotek dödas, är dock PSS-rapporten för processen inte lika med det totala minnet som frigjorts.

USS

USS (Unique set size) avser det totala unika minnet för en process. Det här inkluderar inte minne från delade bibliotek. När en process dödas refererar USS till det faktiska minnet som skulle befrias. Som ett resultat är USS värdet att titta på om du misstänker att en process har en minnesläcka.

Running smem som root visar alla processer för alla användare på systemet.

 sudo smem 

Visualisera minnesanvändning

En visualiserad rapport är nästan säkert lättare att läsa än textbaserade resultat. Med hjälp av smem kan du se minnesanvändningen som antingen ett cirkeldiagram eller ett stapeldiagram.

För att visa ett stapeldiagram för PSS, kör USS och RSS för den aktuella användarens processer följande kommando:

 smem - bar namn -c "pss uss rss" 

Minns att PSS är en närmare reflektion av det totala minnet som finns tillgängligt på systemet. För att se ett cirkeldiagram över detta, använd följande kommando:

 smem - namnet 

För att se ett cirkeldiagram över RSS märkt med namn:

 smem - namnet -s rss 

Med smem kan du enkelt se det minne som används av program och processer på ditt system, med ett användbart färgkodat cirkeldiagram eller stapeldiagram. Som det allmänt sagt är en bild värd tusen ord. Det verkar som om smem-utvecklarna är överens.