? Bestämma mängden minne som används av en process som körs på en Linux -plattform är en svår proposition . Värdena för minnesanvändning som rapporteras av operativsystemet är oprecisa . När du använder de inbyggda hjälpprogram som Linux , är det viktigt att förstå statistiken minnesanvändning och hur de beräknas . Hur fungerar en process använder Memory ?
När en process startar , allokerar operativsystemet mängden minne processen kräver för att köras . Varje process har fyra minnesplatser segment för körbar kod och data . Den " code " -segmentet innehåller exekverbara instruktioner . "Data " -segmentet innehåller statiska och globala variabler . Den " stack " innehåller lokala variabler . Den " heap " innehåller dynamiskt tilldelade objekt . Processer kan använda delade bibliotek . Shared libraries endast laddas in i minnet en gång , och alla processer som använder ett visst delat bibliotek kommer att använda det exemplaret . Addera Vad minnesstatistik Har Linux rapporten ?
Virtuellt minne är det sammanlagda beloppet av adressen utrymme reserveras av operativsystemet till processen för sin kod , data och stack . Den virtuella minne rapporteras av Linux innehåller alla koder , data och stack utrymme reserverat för användning av en process , både fysiskt minne och växlingsutrymme . Detta värde inkluderar utrymme som används av alla delade bibliotek som används av processen . Innebörden av detta är att de delade bibliotek inräknas fullt mot storleken på en given process .
Residenta minnet storleken på en process som rapporterats av Linux innehåller endast mängden fysiskt minne i processen och de delade biblioteken det refererar använder vid en given tidpunkt . Segment flyttade att byta plats ingår ej . Liksom med virtuellt minne storlek , innehåller bosatt minnesstorlek det utrymme som används av delade bibliotek .
Visning av en enkel process Stillbild med ps
ps Verktyget ger en ögonblicksbild av processer som körs på systemet , rapporterar den virtuella och bosatt minnesstorlek , CPU och procentsatser minne , och ett brett utbud av andra uppgifter . För att undersöka en enda process , använd följande alternativ till ps , inklusive VSZ för virtuellt minne , och rss för vårdtagaren minnesstorlek . Till exempel ,
ps p 3746 o pid , rss , VSZ , comm
utgångar för processen 3746 :
PID RSS VSZ COMMAND3746 14444 351.216 httpd2
övervakningsprocesser med topp
översta verktyget ger en levande bild av systemets prestanda . För att övervaka en eller flera särskilda processer med toppen , använd - p för att ge en lista på process-ID . Till exempel :
top - p 3746,6100,28753,23176,25544
Efter lanseringen topp , slår kommandot på knappen "F " för att öppna skärmen kolumnen valet . Slå på skärmen för PID , VIRT , RES , SHR , SWAP , CODE , DATA , och kolumner kommando. Som framgår av skärmbilden , displayen visar nu följande minnesstatistik :
virt : Virtuellt minne sizeRES : Resident minne sizeSHR : Delat minne sizeSWAP : Swappat sizeCODE : Kod storlek i fysisk memoryDATA : Data plus stack storlek i fysiskt minne Addera Kika in /proc
Detaljerad status och process minnesanvändning information kan hittas i /proc / /status och /proc /< pid > /smaps . En mängd information finns i /proc / /status , inklusive dessa minnesstatistik :
VmPeak : Peak virtuellt minne sizeVmSize : Virtual memoryVmData : Data segmentet sizeVmStk : Stack sizeVmExe : Körbar segment sizeVmLib : Bibliotek kodstorleken
/proc / /smaps ger en mycket detaljerad bild av en process ' minne användningsområden , uppdelade efter mappning för kod , stack , heap och varje delade biblioteket . Den kompletta utgång smaps är ganska långa och svåra att smälta . Du kan använda Linux : Smaps Perl -modul för att tolka och bearbeta smaps filen
.