? Bestemme hvor mye minne som brukes av en prosess som kjører på en Linux-plattform er en vanskelig proposisjoner. Verdiene for minnebruk rapportert av operativsystemet er upresise . Når du bruker de innebygde verktøy levert med Linux, er det viktig å forstå de minnebruk statistikk og hvordan de er beregnet. Hvordan en Process Bruk Memory ?
Når en prosess starter , fordeler operativsystemet mengden minne prosessen krever for å kjøre . Hver prosess har fire minnesegmenter for kjørbar kode og data . Den " kode "-segmentet inneholder kjørbare instruksjoner. Den " data "-segmentet inneholder statiske og globale variabler . Den " stack" inneholder lokale variabler . Den " heap" inneholder dynamisk tildelte stedene. Prosesser kan bruke delte biblioteker . Delte bibliotekene bare lastet inn i minnet en gang , og alle prosesser ved hjelp av en bestemt delt bibliotek vil bruke dette eksemplaret .
Hva Memory Statistikk Har Linux rapporten?
Virtuelt minne er den totale mengden av adressen som er reservert av operativsystemet til prosessen for sin kode , data og stack . Det virtuelle minnet størrelse rapportert av Linux inneholder alle koder, data og stack plass reservert for bruk av en prosess , både fysisk minne og swap plass . Denne verdien inkluderer plassen som brukes av alle delte biblioteker som brukes av prosessen . Implikasjonen av dette er at delte biblioteker teller i sin helhet mot størrelsen på en gitt prosess .
Bosatt minne størrelse med en prosess rapportert av Linux inneholder kun den mengden fysisk minne prosessen og de delte bibliotekene den refererer bruker på et gitt tidspunkt . Segmenter flyttet til bytte plass er ikke inkludert. Som med virtuelt minne størrelse, inkluderer bosatt minne størrelse plassen som brukes av delte biblioteker .
Vise en enkel prosess Snapshot med ps
ps verktøyet gir en øyeblikksbilde av prosesser som kjører på systemet , rapporterer den virtuelle og bosatt minne størrelse, CPU og minne prosenter , og en rekke andre opplysninger . Å undersøke en enkelt prosess , bruke følgende alternativer til ps , inkludert VSZ for det virtuelle minnet størrelse , og rss for beboeren minne størrelse. For eksempel , etter
ps p 3746 o pid , rss , VSZ , comm
utganger for prosessen 3746 : en
PID RSS VSZ COMMAND3746 14 444 351 216 httpd2
Overvåking Prosesser med topp
Den øverste verktøyet gir en live-visning av systemytelsen. Å overvåke en eller flere spesifikke prosesser med toppen , bruker du - p muligheten til å gi en oversikt over prosess -IDer. For eksempel : en
topp -p 3746,6100,28753,23176,25544
Etter lanseringen toppen, traff Kommando-tasten "f " for å få tilgang til kolonnen valgskjermen. Slå på skjermen for PID , VIRT , RES , SHR , SWAP , KODE, DATA , og kommando kolonner. Som illustrert i skjermbildet , vises nå følgende minne statistikken:
virt : Virtuelt minne sizeRES : Resident minne sizeSHR : Delt minne sizeSWAP : Byttet sizeCODE : Kode størrelse i fysisk memoryDATA : Data pluss stack størrelse i fysisk minne
titte inn /proc
Detaljert status og prosessen minnebruk informasjon finner du i /proc / /status og /proc /< pid > /smaps . Et utvalg av informasjon finnes i /proc / /status, inkludert disse minne statistikk :
VmPeak : Peak virtuelt minne sizeVmSize : Virtual memoryVmData : data segmentet sizeVmStk : Stack sizeVmExe : Kjørbar segment sizeVmLib : Library kode størrelse
/proc / /smaps gir en svært detaljert visning av en prosess ' minne bruksområder , fordelt på kartlegging for kode , stack , haug og hvert delt bibliotek . Den komplette produksjonen av smaps er ganske lang og vanskelig å fordøye. Du kan bruke Linux: Smaps Perl -modulen for å analysere og behandle smaps fil
.