? Fastsættelsen af hukommelse, der bruges ved en proces, der kører på en Linux platform er en vanskelig proposition . Værdierne for hukommelsesforbrug indberettet af operativsystemet er upræcise . Når du bruger de indbyggede hjælpeprogrammer , der følger med Linux , er det vigtigt at forstå de hukommelsesforbrug statistikker og hvordan de er beregnet. Hvordan virker et Process Brug Memory?
Når en proces starter, operativsystemet allokerer den mængde hukommelse, processen kræver for at køre. Hver proces har fire hukommelse segmenter for eksekverbar kode og data. Den " kode" -segmentet indeholder eksekverbare instruktioner. Den " data " -segmentet indeholder statiske og globale variabler. Den " stack " indeholder lokale variable . Den " dynge" indeholder dynamisk tildelte objekter. Processer kan anvende delte biblioteker . Delte biblioteker kun indlæses i hukommelsen én gang, og alle processer ved hjælp af en bestemt delt bibliotek vil bruge denne kopi.
Hvad Memory Statistik Er Linux rapport?
Virtuel hukommelse er det samlede beløb for den adresse plads reserveret af operativsystemet til processen for sin kode , data og stak. Den virtuelle hukommelse størrelse rapporteret af Linux indeholder alle de kode , data og stak plads reserveret til brug af en proces , både fysisk hukommelse og swap-plads . Denne værdi omfatter plads, der bruges af alle delte biblioteker , der anvendes af processen. Følgerne af dette er, at delte biblioteker medregnes fuldt mod størrelsen af en given proces .
Beboeren hukommelse størrelse af en proces rapporteret af Linux indeholder kun den mængde fysisk hukommelse processen og de delte biblioteker som den refererer bruger på et givet tidspunkt . Segmenterne flyttet at bytte plads er ikke inkluderet . Ligesom med virtuel hukommelse størrelse, resident hukommelsesstørrelse omfatter plads, der bruges af delte biblioteker .
Visning af en enkel proces Snapshot med ps
ps hjælpeprogram giver et øjebliksbillede af processer, der kører på systemet , rapportering den virtuelle og bosat hukommelse størrelse , CPU og hukommelse procenter , og en bred vifte af andre oplysninger. For at undersøge en enkelt proces , skal du bruge følgende indstillinger til ps , herunder VSZ for den virtuelle hukommelse størrelse og rss for beboeren hukommelse. For eksempel , Amerikas
ps p 3746 o pid , rss , VSZ , comm
udgange til proces 3746 : Hej
PID RSS VSZ COMMAND3746 14444 351216 httpd2
Salg Overvågning Processer med top
øverste hjælpeprogram giver en live visning af systemets ydeevne. At overvåge en eller flere bestemte processer med top , skal du bruge - p mulighed for at give en liste over proces -id'er . For eksempel : Hej
top- p 3746,6100,28753,23176,25544
Efter lanceringen top , ramte kommandoen nøgle " f" for at få adgang kolonnen skærmen til valg . Tænd for skærmen for PID , VIRT , RES , SHR, SWAP , CODE , DATA og Kommando kolonner. Som det fremgår af skærmbilledet , displayet viser nu følgende hukommelsesstatistik :
virt : Virtuel hukommelse sizeRES : Resident hukommelse sizeSHR : Delt hukommelse sizeSWAP : Byttede sizeCODE : Kode størrelse i fysisk memoryDATA : Data plus stack size i fysisk hukommelse
Peeking i /proc
Detaljeret status og proces hukommelse information kan findes i /proc / /status og /proc /< pid > /smaps . En række oplysninger er indeholdt i /proc / /status, herunder disse hukommelsesstatistik :
VmPeak : Peak virtuel hukommelse sizeVmSize : Virtual memoryVmData : datasegment sizeVmStk : Stack sizeVmExe : Executable segment sizeVmLib : Library kode størrelse
/proc / /smaps giver et meget detaljeret billede af en proces ' hukommelse kutymer , opdelt efter kortlægning til koden, stack , dynge og hver delt bibliotek . Den komplette output smaps er temmelig langvarig og vanskelig at fordøje . Du kan bruge Linux: Smaps Perl modul til at parse og bearbejde smaps fil
.