# Wie Arbeitsspeicher Belegung anzeigen lassen?

## 3PO

Hallo Zusammen,

gibt es eigenlich eine Möglichkeit sich anzeigen zu lassen welcher Prozess wieviel RAM belegt?

Der Hintergrund ist folgender, Nach einem Start des Systems liegt die Speicherauslastung bei ca. 20%. wenndas System nun aber ein paar Stunden läuft, liegt die Auslastung bei ca. 80%. Nun würde es mich eben interessieren, wer mir da den Speicher zumüllt.

----------

## 69719

```

top

```

Der meister Speicher wird als Cache verwendet um schneller auf bereits vorhandenen aber freigegebenen Daten zurückgreifen zu können.

```

gendevel ~ # free -m

             total       used       free     shared    buffers     cached

Mem:           504        498          6          0         80        297

-/+ buffers/cache:        120        384

Swap:          972          0        972

```

Dort sind keine 6 MB frei, sondern 6 + 80 + 297 = 383.Last edited by 69719 on Thu Apr 02, 2009 10:21 am; edited 1 time in total

----------

## tamiko

Die klingt eher nach dem Festplatten-Cache, als dass da ein Programm Amok läuft.

Dies kannst du ganz schnell mit dem Befehl free überprüfgen:

```
tamiko@bluebird ~ % free -m

             total       used       free     shared    buffers     cached

Mem:          7984       2498       5485          0        239       1447

-/+ buffers/cache:        811       7172

Swap:            0          0          0
```

Erklärung: Von 8GB RAM sind 2.5GB benutzt, davon 1.7GB "buffers + cached", also Festplattenpuffer/Cache. Tatsächlich werden von Programmen und Kernel nur 811MB benötigt.

Eine genauere Auflösung liefert

```
tamiko@bluebird ~ % cat /proc/meminfo

MemTotal:        8175772 kB

MemFree:         5617316 kB

Buffers:          246536 kB

Cached:          1554456 kB

SwapCached:            0 kB

Active:          1291008 kB

Inactive:         957668 kB

Active(anon):     641204 kB

Inactive(anon):        0 kB

Active(file):     649804 kB

Inactive(file):   957668 kB

Unevictable:          32 kB

Mlocked:              32 kB

SwapTotal:             0 kB

SwapFree:              0 kB

Dirty:              2168 kB

Writeback:             0 kB

AnonPages:        447700 kB

Mapped:            84772 kB

Slab:             267320 kB

SReclaimable:     228528 kB

SUnreclaim:        38792 kB

PageTables:        13016 kB

NFS_Unstable:          0 kB

Bounce:                0 kB

WritebackTmp:          0 kB

CommitLimit:     4087884 kB

Committed_AS:     897684 kB

VmallocTotal:   34359738367 kB

VmallocUsed:      310360 kB

VmallocChunk:   34359416315 kB

DirectMap4k:       73152 kB

DirectMap2M:     8314880 kB
```

Erklärung: 530MB "AnonPages + Mapped" für Programme, der Kernel braucht aktuell 257MB ("Slab") Arbeitsspeicher, wovon er sich 228MB mal noch gesichert hat ("SReclaimable"), und die im Notfall zur Verfügung stünden.

Um Programme nach ihrem Speicherverbrauch zu sortieren ist top ganz gut: $top , dann die Tastenkombination: STRG-F n <Enter> (Interessant ist die Spalte RES)

/edit:

Die korrekte Tastenkombination ist <Umschalt>-f + n für topLast edited by tamiko on Thu Apr 02, 2009 10:58 am; edited 1 time in total

----------

## 3PO

Das ist leider auch nicht sehr aufschlussreich...

```
vdr02 ~ # free

             total       used       free     shared    buffers     cached

Mem:       2073024    1982136      90888          0      45444    1609628

-/+ buffers/cache:     327064    1745960

Swap:      6144852        192    6144660

vdr02 ~ # cat /proc/meminfo

MemTotal:      2073024 kB

MemFree:         90832 kB

Buffers:         45456 kB

Cached:        1609628 kB

SwapCached:          0 kB

Active:         586632 kB

Inactive:      1222988 kB

HighTotal:     1179264 kB

HighFree:        36704 kB

LowTotal:       893760 kB

LowFree:         54128 kB

SwapTotal:     6144852 kB

SwapFree:      6144660 kB

Dirty:             904 kB

Writeback:           0 kB

AnonPages:      153232 kB

Mapped:          30416 kB

Slab:           142160 kB

SReclaimable:   127520 kB

SUnreclaim:      14640 kB

PageTables:       1620 kB

NFS_Unstable:        0 kB

Bounce:              0 kB

WritebackTmp:        0 kB

CommitLimit:   7181364 kB

Committed_AS:   931556 kB

VmallocTotal:   114680 kB

VmallocUsed:     41816 kB

VmallocChunk:    61996 kB

vdr02 ~ #

```

```

20183 root      20   0  500m 102m  13m S   59  36:20.49 vdr

    8 root      15  -5     0    0    0 S    2  37:43.99 ksoftirqd/2

   14 root      15  -5     0    0    0 S    0  18:41.72 events/3

 5945 root      20   0     0    0    0 S    0   0:18.78 pdflush

 7932 root      20   0 17364  14m 3896 S    0   2:41.74 vmware-serverd

10244 root      15  -5     0    0    0 S    0   1:51.48 kondemand/0

10247 root      15  -5     0    0    0 S    0  11:44.22 kondemand/2

10248 root      15  -5     0    0    0 S    0  22:52.07 kondemand/3

14739 root      20   0  1832  444  364 S    0  96:23.07 shmnetd

17679 root      20   0  2440 1216  884 R    0   0:00.22 top

    1 root      20   0  1652  560  492 S    0   0:20.38 init

    2 root      15  -5     0    0    0 S    0   0:00.00 kthreadd

    3 root      RT  -5     0    0    0 S    0   0:00.23 migration/0

    4 root      15  -5     0    0    0 S    0   5:31.09 ksoftirqd/0

    5 root      RT  -5     0    0    0 S    0   0:00.83 migration/1

    6 root      15  -5     0    0    0 S    0  37:14.95 ksoftirqd/1

    7 root      RT  -5     0    0    0 S    0   0:00.22 migration/2

    9 root      RT  -5     0    0    0 S    0   0:00.44 migration/3

   10 root      15  -5     0    0    0 S    0  35:23.99 ksoftirqd/

.....
```

----------

## tamiko

Entschuldigung.

<Umschalt> - f + n für top.

----------

## 3PO

 *tamiko wrote:*   

> Entschuldigung.
> 
> <Umschalt> - f + n für top.

 

hmm...,

aber auch hier sehe nicht wiklich grosse Speicherfresser...

```
 PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND

20183 root      20   0  476m 102m  14m S   11  5.1  47:40.75 vdr

 9423 mysql     20   0  124m  22m 3128 S    0  1.1   4:01.80 mysqld

 7932 root      20   0 17364  14m 3896 S    0  0.7   2:42.36 vmware-serverd

 9564 root      20   0 35024  13m 4512 S    0  0.7   0:57.21 apache2

 9568 apache    20   0 35024  11m 2196 S    0  0.6   0:00.00 apache2

 9569 apache    20   0 35024  11m 2188 S    0  0.6   0:00.00 apache2

 9571 apache    20   0 35024  11m 2188 S    0  0.6   0:00.00 apache2

 9572 apache    20   0 35024  11m 2188 S    0  0.6   0:00.00 apache2

 9573 apache    20   0 35024  11m 2188 S    0  0.6   0:00.00 apache2

10172 root      20   0 11444 5716 1424 S    0  0.3   0:13.74 miniserv.pl

 9828 haldaemo  20   0  5112 3300 2540 S    0  0.2   0:13.87 hald

16199 root      20   0  7844 2516 1912 S    0  0.1   0:00.46 sshd

17255 root      20   0  7816 2512 1936 S    0  0.1   0:01.27 sshd

16207 root      20   0  7848 2508 1936 S    0  0.1   0:02.24 sshd

16660 root      20   0  7844 2504 1912 S    0  0.1   0:00.20 sshd

16022 root      20   0  9616 2492 1764 S    0  0.1   0:00.06 smbd

10043 root      20   0  9256 2304 1596 S    0  0.1   0:00.33 smbd

10388 root      20   0 35508 1792  844 S    0  0.1   1:07.32 pcscd

16214 root      20   0  4996 1728 1376 S    0  0.1   0:00.17 bash

10439 root      20   0  4996 1704 1356 S    0  0.1   0:00.04 bash

17265 root      20   0  4996 1704 1360 S    0  0.1   0:00.00 bash

16206 root      20   0  4808 1572  956 S    0  0.1   0:00.32 sftp-server

20075 root      20   0  4796 1432 1108 S    0  0.1   0:00.04 runvdr

 9715 root      20   0  4660 1364 1084 S    0  0.1   0:00.00 fritzwatch.sh

10053 root      20   0  4444 1364  948 S    0  0.1   0:28.43 nmbd

16667 root      20   0  4488 1332  952 S    0  0.1   0:00.05 sftp-server

10416 root      20   0  2604 1276  948 S    0  0.1   0:00.03 login

 9709 root      20   0  4656 1268 1012 S    0  0.1   0:00.00 sh

17873 root      20   0  2440 1224  892 R    0  0.1   0:01.01 top

18407 root      20   0  4648 1196 1020 S    0  0.1   0:00.00 log

 9829 root      20   0  3120 1056  900 S    0  0.1   0:00.00 hald-runner

 9833 root      20   0  3184 1024  884 S    0  0.0   0:00.00 hald-addon-inpu

 9707 root      20   0  4888 1016  648 S    0  0.0   0:00.00 screen

 9844 root      20   0  3188 1016  884 S    0  0.0   0:49.65 hald-addon-stor

 9504 root      20   0  4864 1000  616 S    0  0.0   0:00.07 sshd

 9920 ivman     20   0  6956  996  652 S    0  0.0   0:00.00 ivman

..... 
```

----------

## 69719

1,6 GB von ~2GB frei ist doch in Ordnung.

 *3PO wrote:*   

> Das ist leider auch nicht sehr aufschlussreich...
> 
> ```
> vdr02 ~ # free
> 
> ...

 

----------

## tamiko

Dann ist wohl alles in Ordnung   :Smile: 

----------

## 3PO

 *escor wrote:*   

> 1,6 GB von ~2GB frei ist doch in Ordnung....

 

Dann verstehe ich aber das nicht??

total  = 2073024  

used =  1982136           

free = 90888

----------

## 69719

```

vdr02 ~ # free

             total       used       free     shared    buffers     cached

Mem:       2073024    1982136      90888          0      45444    1609628 

```

( 90888 + 45444 + 1609628 ) / 1024 / 1024 = ~1,67 GB

----------

## firefly

 *3PO wrote:*   

>  *escor wrote:*   1,6 GB von ~2GB frei ist doch in Ordnung.... 
> 
> Dann verstehe ich aber das nicht??
> 
> total  = 2073024  
> ...

 

die free spalte  zeigt den tatsächlich freien Speicher an, sprich der von keinem Programm oder vom kernel belegt ist. In den 1,6 GB sind auch die buffers/cache mit eingerechnet, welche als frei markiert sind.

Um den gesamten, für Programme verfügbar, freien Speicher zu erhalten, musst die werte aus der free spalte von "Mem:" und "-/+ buffers/cache:" zusammenzählen.

----------

## 3PO

Das würde doch aber dann bedeuten, dass die Aussage von z.B diesem Tool gar nicht stimmt??

 *Quote:*   

> Systeminformationen
> 
> Linux Kernel: 2.6.26-gentoo-r3 i686
> 
> Distribution: Gentoo Base System release 1.12.11.1
> ...

 

dazu noch die Ausgabe von free:

```
vdr02 ~ # free

             total       used       free     shared    buffers     cached

Mem:       2073024    1570580     502444          0      20508    1261944

-/+ buffers/cache:     288128    1784896

Swap:      6144852        192    6144660

vdr02 ~ #
```

----------

## 69719

 *firefly wrote:*   

>  *3PO wrote:*    *escor wrote:*   1,6 GB von ~2GB frei ist doch in Ordnung.... 
> 
> Dann verstehe ich aber das nicht??
> 
> total  = 2073024  
> ...

 

```

vdr02 ~ # free

             total       used       free     shared    buffers     cached

Mem:       2073024    1982136      90888          0      45444    1609628

-/+ buffers/cache:     327064    1745960 

```

Demnäch wären ~2,06 GB (2163912 Byte) von insgesamt ~1,97 GB (2073024 Byte) frei, da stimmt wohl was nicht.

Du kannst aber auch

```

echo 3 > /proc/sys/vm/drop_caches

```

eingeben, dann deaktiviert er den cache und zeigt es dir richtig an.

----------

## 69719

So, hier nochmal was aus einem Wiki

http://wiki.debianforum.de/LinuxSpeichermanagement#head-c1acf43ace69d94c790513fad1ea1d53a8c7d1b9

----------

