Toddvarg skrev:lath skrev:Mange bliver snydt af resultatet fra free komandoen:
Det som Toddvang læser er memory/buffers brug, og det er bare kernen der bruger RAM som ikke bruges af nogen programmer. "buffers" er en gigantisk stor diskcache som i Toddvangs tilfælde er på 3,8 GB.
Der er med andre ord ikke noget galt, buffers bliver mindre når der er et eller andet program der har brug for mere RAM, og den bliver større igen når programmer lukkes.
Det sker fuldautomatisk, og man behøver ikke at gøre noget som helst.
Jeg anbefaler at bruge smem programmet til at se hukommelsesforbrug for de enkelte programmer - smem fortæller også om swap brug.
/Lars
Tak for det Lars, det gav et andet billede. Jeg har testet smem og var også inde på deres hjemmeside for at se hvad muligheder der var tilgængeligt. Jeg fik en oversigt som gav mere mening over hvad der egentlig blev brugt i % af de forskellige programmer.
smem.jpeg
Jeg har bare en lille spørgsmål i forhold til smem, eller måske er det ikke så lille, og det er hvad de forskellige forkortelser står for, og hvad de betyder. Måske går svaret over mit hoved, men vi lever i håbet at ens forståelse øger lidt mere, hver gang noget fyldes på
Kode: Vælg alt
gundersen@gundersen-desktop:~$ smem
PID User Command Swap USS PSS RSS
Hvis man kører
... så kan man læse om smem - iden står der også hvad de forskellige forkortelser betyder, men jeg skriver lige en kort udgave på dansk:
Virtuel hukommelse er det som programmer kan få adgang til. Virtuel hukommelse består af fysisk RAM samt swap, der er enten en/flere swap partitions, og/eller en/flere swap filer. Fra fysisk RAM skal trækkes det kernen bruger, samt en bestemt minimumsmængde den skal have til rådighed. Udover det kernen skal bruge skal man fra fysisk RAM også trække det som et grafikkort/en GPU bruger.
swap er den mængde af swap hukommelse der er swappet ud, så der er mere fysisk RAM til rådighed.
USS er udelt hukommelse (Unique Set Size), det er den virtuelle hukommelse som kun programmet er bruger af.
PSS (Proportional Set Size) er USS + programmets andel af delt (shared) hukommelse.
USS og PSS er kun om forbruget i fysisk RAM.
RSS (Resident Set Size) er programmets forbrug af virtuel hukommelse
Afslutningsvis vil jeg lige fortælle om hvad delt hukommelse (shared memory egentlig er på styresystem niveau.
Delt hukommelse skal forstås sådan at i fysisk RAM kan et softwarebibliotek (som bor i en lib*.so fil) bruges af mere end et program på samme tid. På den måde sparer man fysisk RAM.
Det er lavet sådan at i virtuel RAM er softwarebiblioteket ikke delt. Det laves på den måde at kernen vedligeholder en buffer med virtuel hukommelsesadresse områder der peger på fysisk RAM (og swap). For at det skal være effektivt har mikroprocessoren noget der hedder Translation Lookaside Buffers (TLBs):
http://en.wikipedia.org/wiki/Translation_lookaside_buffer, som den kigger i hver eneste gang en virtuel hukommmelsesadresse bruges - hvilket så er stort set altid.
Det smarte er nu at for eksempel 10 GTK+ programmer kan behøver at have indlæst kun 1 kopi af libgtk*.so, Hvert program har i virtuel RAM sin egen GTK+, men i virkeligheden er den rigtige GTK+ kode kun et sted i fysisk RAM. TLBerne sørger for der for alle GTK+ programmer er sådan at de peger på det samme libgtk*.so bibliotek i fysisk RAM.
/Lars