Et system, der mangler tilstrækkelig fysisk hukommelse (RAM), vil køre betydeligt langsommere, da processer flyttes mellem RAM og swap. Hvis et Linux-system begynder at køre langsomt, er en af ​​de første fejlfindingsopgaver at frigøre fysisk hukommelse.

Der er flere værktøjer til rådighed til at overvåge hukommelsesbrugen på et Linux-system, herunder top, som vi har diskuteret. Smem er et andet værktøj, der bruges til overvågning af hukommelsesbrug. Ud over at vise hukommelsesbrug af processer på kommandolinjen, kan smem også vise en farvekodet pie og / eller stregdiagram. Med smem kan du nemt visualisere hukommelsesbrug på dit Linux-system.

Installation

På Debian og Ubuntu systemer kan smem installeres fra repositorierne med kommandoen

 sudo apt-get install smem 

Tjek hukommelsesbrug

Hvis du kører smem som en ikke-privilegeret bruger, vises hukommelsen, der bruges af alle processer, der er lanceret med det nuværende bruger-id, bestilt af PSS fra mindst til de fleste.

 SMEM 

Som standard er der syv kolonner, proces-id, brugernavn, kommandoen, der blev brugt til at starte processen, mængden af ​​bytteplads tildelt processen og USS, PSS og RSS.

RSS

RSS (Resident set size) er den samlede hukommelse i RAM for en proces. Dette omfatter hukommelsen tildelt til delte biblioteker, der anvendes af processen, selvom delte biblioteker kan bruges af flere processer, mens de kun indlæses én gang i hukommelsen. RSS er derfor ikke en nøjagtig gengivelse af den hukommelse, der bruges af en given proces.

PSS

PSS (Proportional set size) deler derimod den hukommelse, der er allokeret til et delt bibliotek blandt de processer, der bruger det. Hvis tre processer bruger et delt bibliotek, der har tres sider, vil biblioteket derfor bidrage med 20 sider til PSS for hver af processerne. Den samlede PSS er normalt omtrent lig med systemets samlede RAM. Men når en proces, der deler et bibliotek, dræbes, er PSS'en, der er rapporteret for processen, ikke lig med den samlede hukommelse, der frigøres.

USS

USS (Unik sæt størrelse) refererer til den samlede unikke hukommelse til en proces. Dette omfatter ikke hukommelse fra delte biblioteker. Når en proces dræbes, henviser USS til den faktiske hukommelse, der ville blive befriet. Som et resultat er USS værdien til at se, hvis du har mistanke om, at en proces har en hukommelsesleje.

Running smem som root viser alle processer for alle brugere på systemet.

 sudo smem 

Visualiser hukommelsesbrug

En visualiseret rapport er næsten helt sikkert nemmere at læse end tekstbaserede resultater. Ved hjælp af smem kan du se hukommelsesbrugen som enten et cirkeldiagram eller et stregdiagram.

For at se et stregdiagram for PSS, løber USS og RSS af den nuværende brugers processer følgende kommando:

 smem - bar navn -c "pss uss rss" 

Husk, at PSS er en nærmere afspejling af den samlede hukommelse, der er tilgængelig på systemet. For at se et cirkeldiagram af dette, brug følgende kommando:

 smem - navn 

For at se et cirkeldiagram af RSS mærket med navn:

 smem - navn - rss 

Ved hjælp af smem kan du nemt se den hukommelse, der bruges af programmer og processer på dit system, med et nyttigt farvekodet cirkeldiagram eller stregdiagram. Som det er sagt, er et billede værd at tusinde ord. Det forekommer smem-udviklerne enige om.