# Why is my server using so much memory?

## Tarball

I have a file server running a few services (samba, nfs, sshd) but no X, everything is done from the console.  However, even when the only thing I have done is boot the machine it seems to consume nearly all memory.

The system is a Dual Celeron 566, 128MB RAM, 256MB Swap, about 500GB disk space. 

```
{chaos} /home/jrt% uname -a

Linux chaos 2.6.9-gentoo-r1 #1 SMP Sat Oct 23 14:39:48 GMT 2004 i686 Celeron (Mendocino) GenuineIntel GNU/Linux

```

Is there anything glaringly obvious I'm missing???

```

{chaos} /home/jrt% free

             total       used       free     shared    buffers     cached

Mem:        126740     124820       1920          0      10364      10104

-/+ buffers/cache:     104352      22388

Swap:       248996          0     248996

```

```
{chaos} /home/jrt% ps aux

USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND

root         1  0.0  0.3  1380  500 ?        S    Dec14   0:00 init [3]

root         2  0.0  0.0     0    0 ?        S    Dec14   0:00 [migration/0]

root         3  0.0  0.0     0    0 ?        SN   Dec14   0:01 [ksoftirqd/0]

root         4  0.0  0.0     0    0 ?        S    Dec14   0:00 [migration/1]

root         5  0.0  0.0     0    0 ?        SN   Dec14   0:01 [ksoftirqd/1]

root         6  0.0  0.0     0    0 ?        S<   Dec14   0:00 [events/0]

root         7  0.0  0.0     0    0 ?        S<   Dec14   0:00 [events/1]

root         8  0.0  0.0     0    0 ?        S<   Dec14   0:00 [khelper]

root         9  0.0  0.0     0    0 ?        S<   Dec14   0:00 [kblockd/0]

root        10  0.0  0.0     0    0 ?        S<   Dec14   0:00 [kblockd/1]

root        33  0.0  0.0     0    0 ?        S    Dec14   0:00 [pdflush]

root        32  0.0  0.0     0    0 ?        S    Dec14   0:00 [kirqd]

root        34  0.0  0.0     0    0 ?        S    Dec14   0:00 [pdflush]

root        36  0.0  0.0     0    0 ?        S<   Dec14   0:00 [aio/0]

root        35  0.0  0.0     0    0 ?        S    Dec14   0:54 [kswapd0]

root        37  0.0  0.0     0    0 ?        S<   Dec14   0:00 [aio/1]

root       620  0.0  0.0     0    0 ?        S    Dec14   0:00 [kseriod]

root       641  0.0  0.0     0    0 ?        S    Dec14   0:00 [kjournald]

root       724  0.0  0.2  1356  368 ?        S<s  Dec14   0:00 udevd

root      5178  0.0  0.0     0    0 ?        S    Dec14   0:00 [kjournald]

root      5179  0.0  0.0     0    0 ?        S    Dec14   0:00 [kjournald]

root      5180  0.0  0.0     0    0 ?        S    Dec14   0:00 [kjournald]

root      5183  0.0  0.0     0    0 ?        S    Dec14   0:00 [khubd]

bin       6493  0.0  0.5  1572  656 ?        Ss   Dec14   0:00 /sbin/portmap

nobody    6547  0.0  0.5  1540  732 ?        Ss   Dec14   0:00 /sbin/rpc.statd

root      6564  0.0  0.0     0    0 ?        S    Dec14   0:00 [nfsd]

root      6563  0.0  0.0     0    0 ?        S    Dec14   0:00 [nfsd]

root      6562  0.0  0.0     0    0 ?        S    Dec14   0:00 [nfsd]

root      6557  0.0  0.0     0    0 ?        S    Dec14   0:00 [nfsd]

root      6558  0.0  0.0     0    0 ?        S    Dec14   0:00 [nfsd]

root      6559  0.0  0.0     0    0 ?        S    Dec14   0:00 [nfsd]

root      6560  0.0  0.0     0    0 ?        S    Dec14   0:00 [nfsd]

root      6561  0.0  0.0     0    0 ?        S    Dec14   0:00 [nfsd]

root      6567  0.0  0.0     0    0 ?        S    Dec14   0:00 [lockd]

root      6568  0.0  0.0     0    0 ?        S    Dec14   0:00 [rpciod]

root      6569  0.0  0.5  1588  676 ?        Ss   Dec14   0:00 /usr/sbin/rpc.mountd

root      6677  0.0  2.0  8180 2540 ?        Ss   Dec14   0:00 /usr/sbin/smbd -D

root      6680  0.0  1.9  8180 2532 ?        S    Dec14   0:00 /usr/sbin/smbd -D

root      6681  0.0  1.5  6000 1992 ?        Ss   Dec14   0:27 /usr/sbin/nmbd -D

root      6733  0.0  1.2  3984 1580 ?        Ss   Dec14   0:00 /usr/sbin/sshd

root      6807  0.0  0.4  1500  624 ?        Ss   Dec14   0:00 metalog [MASTER]

root      6808  0.0  0.3  1464  504 ?        S    Dec14   0:00 metalog [KERNEL]

root      6818  0.0  0.5  1568  660 ?        Ss   Dec14   0:00 /usr/sbin/cron

root      6871  0.0  0.6  2032  860 ?        Ss   Dec14   0:00 /usr/sbin/xinetd -pidfile /var/run/xinetd.pid -

root      6886  0.0  0.4  1412  572 tty1     Ss+  Dec14   0:00 /sbin/agetty 38400 tty1 linux

root      6887  0.0  0.4  1412  572 ttyS0    Ss+  Dec14   0:00 /sbin/agetty 19200 9600 4800 ttyS0

root      6888  0.0  1.5  6604 1928 ?        Ss   Dec14   0:00 sshd: jrt [priv]

jrt       6891  0.0  1.6  6808 2084 ?        S    Dec14   0:00 sshd: jrt@pts/0

jrt       6892  0.0  1.3  2828 1736 pts/0    Ss+  Dec14   0:00 -tcsh

root     17752  0.2  1.5  6604 1928 ?        Ss   00:31   0:00 sshd: jrt [priv]

jrt      17755  0.4  1.6  6808 2084 ?        R    00:31   0:00 sshd: jrt@pts/1

jrt      17756  0.7  1.4  2892 1784 pts/1    Ss   00:31   0:00 -tcsh

jrt      17777  0.0  0.6  2364  824 pts/1    R+   00:31   0:00 ps aux

```

----------

## bollucks

That's very normal for linux memory usage. It's "always full" by design with either running applications or file cache since ram is fast it makes sense to use it as much as possible.

----------

## Tarball

I am aware of the way linux uses unallocated memory for disk cache but if you look at the output of free (in my previous post) cache accounts for10MB of used memory.

Compare this with my desktop machine running X as well as samba, nfs, sshd:

After booting my desktop machine (runlevel 3 ie no X running):

```
             total       used       free     shared    buffers     cached

Mem:       1036408     173652     862756          0       9404     125156

-/+ buffers/cache:      39092     997316

Swap:       255984          0     255984

USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND

root         1  0.0  0.0  1352  480 ?        S    07:01   0:00 init [3]  

root         2  0.0  0.0     0    0 ?        SN   07:01   0:00 [ksoftirqd/0]

root         3  0.0  0.0     0    0 ?        S<   07:01   0:00 [events/0]

root         4  0.0  0.0     0    0 ?        S<   07:01   0:00 [khelper]

root         5  0.0  0.0     0    0 ?        S<   07:01   0:00 [kacpid]

root        26  0.0  0.0     0    0 ?        S<   07:01   0:00 [kblockd/0]

root        36  0.0  0.0     0    0 ?        S    07:01   0:00 [pdflush]

root        37  0.0  0.0     0    0 ?        S    07:01   0:00 [pdflush]

root        39  0.0  0.0     0    0 ?        S<   07:01   0:00 [aio/0]

root        38  0.0  0.0     0    0 ?        S    07:01   0:00 [kswapd0]

root       110  0.0  0.0     0    0 ?        S    07:01   0:00 [kseriod]

root       146  0.0  0.0     0    0 ?        S    07:01   0:00 [kjournald]

root       220  0.0  0.0  1328  372 ?        S<s  07:01   0:00 udevd

root      5257  0.0  0.0     0    0 ?        S    07:02   0:00 [khubd]

root      5660  0.0  0.0     0    0 ?        S    07:02   0:00 [msp3410 [auto]]

root      5893  0.0  0.0     0    0 ?        S    07:02   0:00 [kjournald]

root      5894  0.0  0.0     0    0 ?        S    07:02   0:00 [kjournald]

root     11835  0.0  0.1  1392 1392 ?        SLs  07:02   0:00 /usr/sbin/watchdog

root     12086  0.0  0.0  1448  592 ?        Ss   07:02   0:00 metalog [MASTER]                                           

root     12087  0.0  0.0  1416  484 ?        S    07:02   0:00 metalog [KERNEL]                                           

root     12191  0.1  0.4  7720 4628 ?        Ss   07:02   0:00 /usr/sbin/cupsd

distcc   12375  0.0  0.0  1912  660 ?        SNs  07:02   0:00 /usr/bin/distccd --pid-file /var/run/distccd/distccd.pid -N 15 --user distcc --port 3632 --log-level critical

distcc   12376  0.0  0.0  1912  660 ?        SN   07:02   0:00 /usr/bin/distccd --pid-file /var/run/distccd/distccd.pid -N 15 --user distcc --port 3632 --log-level critical

root     12464  0.0  0.1  2420 1144 ?        Ss   07:02   0:00 /usr/kde/3.3/bin/lisa

rpc      12597  0.0  0.0  1572  600 ?        Ss   07:02   0:00 /sbin/portmap

distcc   12600  0.0  0.0  1912  660 ?        SN   07:02   0:00 /usr/bin/distccd --pid-file /var/run/distccd/distccd.pid -N 15 --user distcc --port 3632 --log-level critical

nobody   12656  0.0  0.0  1516  720 ?        Ss   07:02   0:00 /sbin/rpc.statd

distcc   12657  0.0  0.0  1912  660 ?        SN   07:02   0:00 /usr/bin/distccd --pid-file /var/run/distccd/distccd.pid -N 15 --user distcc --port 3632 --log-level critical

root     12665  0.0  0.0     0    0 ?        S    07:02   0:00 [nfsd]

root     12666  0.0  0.0     0    0 ?        S    07:02   0:00 [nfsd]

root     12667  0.0  0.0     0    0 ?        S    07:02   0:00 [nfsd]

root     12668  0.0  0.0     0    0 ?        S    07:02   0:00 [nfsd]

root     12669  0.0  0.0     0    0 ?        S    07:02   0:00 [nfsd]

root     12670  0.0  0.0     0    0 ?        S    07:02   0:00 [nfsd]

root     12671  0.0  0.0     0    0 ?        S    07:02   0:00 [nfsd]

root     12672  0.0  0.0     0    0 ?        S    07:02   0:00 [nfsd]

root     12675  0.0  0.0     0    0 ?        S    07:02   0:00 [lockd]

root     12676  0.0  0.0     0    0 ?        S    07:02   0:00 [rpciod]

root     12677  0.0  0.0  1560  740 ?        Ss   07:02   0:00 /usr/sbin/rpc.mountd

root     12835  0.0  0.0  1360  312 ?        S    07:02   0:00 /usr/bin/svscan /service

root     12847  0.0  0.0  1200  264 ?        S    07:02   0:00 supervise dnscachex

root     12848  0.0  0.0  1200  264 ?        S    07:02   0:00 supervise log

dnscache 12849  0.0  0.1  2652 1340 ?        S    07:02   0:00 /usr/bin/dnscache

dnslog   12850  0.0  0.0  1212  268 ?        S    07:02   0:00 multilog t ./main

ntp      12851  0.0  0.4  4300 4300 ?        SLs  07:02   0:00 /usr/bin/ntpd -p /var/run/ntpd.pid -u ntp:ntp

root     12945  0.0  0.1  4732 1476 ?        Ss   07:02   0:00 /usr/lib/postfix/master

postfix  12994  0.0  0.1  4792 1464 ?        S    07:02   0:00 pickup -l -t fifo -u

postfix  12995  0.0  0.1  4832 1504 ?        S    07:02   0:00 qmgr -l -t fifo -u

root     12996  0.0  0.2  7920 2652 ?        Ss   07:02   0:00 /usr/sbin/smbd -D

root     12999  0.0  0.1  5632 1968 ?        Ss   07:02   0:00 /usr/sbin/nmbd -D

root     13047  0.0  0.2  7920 2644 ?        S    07:02   0:00 /usr/sbin/smbd -D

root     13052  0.0  0.1  3232 1408 ?        Ss   07:02   0:00 /usr/sbin/sshd

root     13095  0.0  0.0  1592  676 ?        Ss   07:02   0:00 /usr/sbin/cron

xfs      13325  0.0  0.3  5708 3660 ?        Ss   07:03   0:00 /usr/X11R6/bin/xfs -daemon -config /etc/X11/fs/config -droppriv -user xfs -port -1

root     13378  0.0  0.0  2004  864 ?        Ss   07:03   0:00 /usr/sbin/xinetd -pidfile /var/run/xinetd.pid -stayalive -reuse

root     13396  0.0  0.1  2160 1176 ?        Ss   07:03   0:00 login -- jrt     

root     13397  0.0  0.0  1384  580 tty2     Ss+  07:03   0:00 /sbin/agetty 38400 tty2 linux

root     13398  0.0  0.0  1384  580 tty3     Ss+  07:03   0:00 /sbin/agetty 38400 tty3 linux

root     13399  0.0  0.0  1384  580 tty4     Ss+  07:03   0:00 /sbin/agetty 38400 tty4 linux

root     13400  0.0  0.0  1384  580 ttyS1    Ss+  07:03   0:00 /sbin/agetty 19200 9600 4800 ttyS1

jrt      13450  0.0  0.1  3276 1952 tty1     Ss   07:03   0:00 -tcsh

jrt      13481  0.0  0.0  2332  808 tty1     R+   07:04   0:00 ps aux

```

After starting X:

```
             total       used       free     shared    buffers     cached

Mem:       1036408     313884     722524          0      16936     191420

-/+ buffers/cache:     105528     930880

Swap:       255984          0     255984

USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND

root         1  0.0  0.0  1352  480 ?        S    07:01   0:00 init [3]  

root         2  0.0  0.0     0    0 ?        SN   07:01   0:00 [ksoftirqd/0]

root         3  0.0  0.0     0    0 ?        S<   07:01   0:00 [events/0]

root         4  0.0  0.0     0    0 ?        S<   07:01   0:00 [khelper]

root         5  0.0  0.0     0    0 ?        S<   07:01   0:00 [kacpid]

root        26  0.0  0.0     0    0 ?        S<   07:01   0:00 [kblockd/0]

root        36  0.0  0.0     0    0 ?        S    07:01   0:00 [pdflush]

root        37  0.0  0.0     0    0 ?        S    07:01   0:00 [pdflush]

root        39  0.0  0.0     0    0 ?        S<   07:01   0:00 [aio/0]

root        38  0.0  0.0     0    0 ?        S    07:01   0:00 [kswapd0]

root       110  0.0  0.0     0    0 ?        S    07:01   0:00 [kseriod]

root       146  0.0  0.0     0    0 ?        S    07:01   0:00 [kjournald]

root       220  0.0  0.0  1328  372 ?        S<s  07:01   0:00 udevd

root      5257  0.0  0.0     0    0 ?        S    07:02   0:00 [khubd]

root      5660  0.0  0.0     0    0 ?        S    07:02   0:00 [msp3410 [auto]]

root      5893  0.0  0.0     0    0 ?        S    07:02   0:00 [kjournald]

root      5894  0.0  0.0     0    0 ?        S    07:02   0:00 [kjournald]

root     11835  0.0  0.1  1392 1392 ?        SLs  07:02   0:00 /usr/sbin/watchdog

root     12086  0.0  0.0  1452  596 ?        Ss   07:02   0:00 metalog [MASTER]                                           

root     12087  0.0  0.0  1416  484 ?        S    07:02   0:00 metalog [KERNEL]                                           

root     12191  0.0  0.4  7720 4628 ?        Ss   07:02   0:00 /usr/sbin/cupsd

distcc   12375  0.0  0.0  1912  660 ?        SNs  07:02   0:00 /usr/bin/distccd --pid-file /var/run/distccd/distccd.pid -N 15 --user distcc --port 3632 --log-level critical

distcc   12376  0.0  0.0  1912  660 ?        SN   07:02   0:00 /usr/bin/distccd --pid-file /var/run/distccd/distccd.pid -N 15 --user distcc --port 3632 --log-level critical

root     12464  0.0  0.1  2420 1144 ?        Ss   07:02   0:00 /usr/kde/3.3/bin/lisa

rpc      12597  0.0  0.0  1572  604 ?        Ss   07:02   0:00 /sbin/portmap

distcc   12600  0.0  0.0  1912  660 ?        SN   07:02   0:00 /usr/bin/distccd --pid-file /var/run/distccd/distccd.pid -N 15 --user distcc --port 3632 --log-level critical

nobody   12656  0.0  0.0  1516  720 ?        Ss   07:02   0:00 /sbin/rpc.statd

distcc   12657  0.0  0.0  1912  660 ?        SN   07:02   0:00 /usr/bin/distccd --pid-file /var/run/distccd/distccd.pid -N 15 --user distcc --port 3632 --log-level critical

root     12665  0.0  0.0     0    0 ?        S    07:02   0:00 [nfsd]

root     12666  0.0  0.0     0    0 ?        S    07:02   0:00 [nfsd]

root     12667  0.0  0.0     0    0 ?        S    07:02   0:00 [nfsd]

root     12668  0.0  0.0     0    0 ?        S    07:02   0:00 [nfsd]

root     12669  0.0  0.0     0    0 ?        S    07:02   0:00 [nfsd]

root     12670  0.0  0.0     0    0 ?        S    07:02   0:00 [nfsd]

root     12671  0.0  0.0     0    0 ?        S    07:02   0:00 [nfsd]

root     12672  0.0  0.0     0    0 ?        S    07:02   0:00 [nfsd]

root     12675  0.0  0.0     0    0 ?        S    07:02   0:00 [lockd]

root     12676  0.0  0.0     0    0 ?        S    07:02   0:00 [rpciod]

root     12677  0.0  0.0  1560  740 ?        Ss   07:02   0:00 /usr/sbin/rpc.mountd

root     12835  0.0  0.0  1360  312 ?        S    07:02   0:00 /usr/bin/svscan /service

root     12847  0.0  0.0  1200  264 ?        S    07:02   0:00 supervise dnscachex

root     12848  0.0  0.0  1200  264 ?        S    07:02   0:00 supervise log

dnscache 12849  0.0  0.1  2652 1340 ?        S    07:02   0:00 /usr/bin/dnscache

dnslog   12850  0.0  0.0  1212  268 ?        S    07:02   0:00 multilog t ./main

ntp      12851  0.0  0.4  4300 4300 ?        SLs  07:02   0:00 /usr/bin/ntpd -p /var/run/ntpd.pid -u ntp:ntp

root     12945  0.0  0.1  4732 1476 ?        Ss   07:02   0:00 /usr/lib/postfix/master

postfix  12994  0.0  0.1  4792 1464 ?        S    07:02   0:00 pickup -l -t fifo -u

postfix  12995  0.0  0.1  4832 1504 ?        S    07:02   0:00 qmgr -l -t fifo -u

root     12996  0.0  0.2  7920 2652 ?        Ss   07:02   0:00 /usr/sbin/smbd -D

root     12999  0.0  0.1  5632 1972 ?        Ss   07:02   0:00 /usr/sbin/nmbd -D

root     13047  0.0  0.2  7920 2644 ?        S    07:02   0:00 /usr/sbin/smbd -D

root     13052  0.0  0.1  3232 1408 ?        Ss   07:02   0:00 /usr/sbin/sshd

root     13095  0.0  0.0  1592  676 ?        Ss   07:02   0:00 /usr/sbin/cron

xfs      13325  0.0  0.3  5844 3856 ?        Ss   07:03   0:00 /usr/X11R6/bin/xfs -daemon -config /etc/X11/fs/config -droppriv -user xfs -port -1

root     13378  0.0  0.0  2004  864 ?        Ss   07:03   0:00 /usr/sbin/xinetd -pidfile /var/run/xinetd.pid -stayalive -reuse

root     13396  0.0  0.1  2160 1176 ?        Ss   07:03   0:00 login -- jrt     

root     13397  0.0  0.0  1384  580 tty2     Ss+  07:03   0:00 /sbin/agetty 38400 tty2 linux

root     13398  0.0  0.0  1384  580 tty3     Ss+  07:03   0:00 /sbin/agetty 38400 tty3 linux

root     13399  0.0  0.0  1384  580 tty4     Ss+  07:03   0:00 /sbin/agetty 38400 tty4 linux

root     13400  0.0  0.1  2160 1116 ?        Ss   07:03   0:00 login -- jrt     

jrt      13450  0.0  0.1  3276 1952 tty1     Ss   07:03   0:00 -tcsh

jrt      13484  0.0  0.0  2024  960 tty1     S+   07:05   0:00 /bin/sh /usr/X11R6/bin/startx

jrt      13495  0.0  0.0  2172  628 tty1     S+   07:05   0:00 xinit /home/jrt/.xinitrc -- -nolisten tcp -br -deferglyphs 16

root     13496  2.5  1.5 149248 15600 ?      S    07:05   0:02 X :0 -nolisten tcp -br -deferglyphs 16

jrt      13518  0.0  0.0  2284  944 tty1     S    07:05   0:00 /bin/sh -f /home/jrt/.xinitrc

jrt      13522  0.0  0.0  2288 1020 tty1     S    07:05   0:00 /bin/sh /usr/kde/3.3/bin/startkde

jrt      13558  0.2  1.1 23268 11660 ?       Ss   07:05   0:00 kdeinit: Running...      

jrt      13561  0.0  0.9 21932 10160 ?       S    07:05   0:00 kdeinit: dcopserver --nosid

jrt      13563  0.0  1.0 24044 11384 ?       S    07:05   0:00 kdeinit: klauncher       

jrt      13566  0.4  1.5 27644 16184 ?       S    07:05   0:00 kdeinit: kded            

jrt      13580  0.8  0.6 11716 6400 ?        S    07:05   0:00 //usr/kde/3.3/bin/artsd -F 10 -S 4096 -a alsa -d -s 60 -m artsmessage -c drkonqi -l 3 -f

jrt      13582  0.0  1.5 30484 15828 ?       S    07:05   0:00 kdeinit: knotify         

jrt      13583  0.0  0.0  1344  340 tty1     S    07:05   0:00 kwrapper ksmserver

jrt      13585  0.1  1.2 23992 13336 ?       S    07:05   0:00 kdeinit: ksmserver       

jrt      13586  0.4  1.5 26516 16308 ?       S    07:05   0:00 kdeinit: kwin -session 11c0a80002000109277694000000155320000_1095529325_845499

jrt      13589  0.1  1.3 24292 13652 ?       S    07:05   0:00 kdeinit: khotkeys        

jrt      13591  1.4  1.7 27844 17744 ?       S    07:05   0:00 kdeinit: kdesktop        

jrt      13593  1.4  1.8 30512 19348 ?       S    07:05   0:00 kdeinit: kicker          

jrt      13594  0.0  1.1 24988 12228 ?       S    07:05   0:00 kdeinit: kio_file file /tmp/ksocket-jrt/klauncherCAUjKa.slave-socket /tmp/ksocket-jrt/kdesktopCPoBMb.slave-socket

jrt      13596  0.0  0.1  3276 1940 ttyS1    Ss   07:05   0:00 -tcsh

jrt      13617  0.0  1.1 24748 12108 ?       S    07:05   0:00 kdeinit: kio_devices devices /tmp/ksocket-jrt/klauncherCAUjKa.slave-socket /tmp/ksocket-jrt/kdesktopCruuKa.slave-socket

jrt      13619  0.2  1.4 25768 15404 ?       S    07:05   0:00 kdeinit: klipper         

jrt      13625  0.7  1.7 28064 17764 ?       S    07:05   0:00 kgpg -session 11c0a80002000109552928100000167780007_1095529325_855450

jrt      13627  0.8  1.7 29744 18512 ?       S    07:05   0:00 korgac --miniicon korganizer

jrt      13629  0.5  1.4 25056 14904 ?       S    07:05   0:00 krandrtray -session 11c0a80002000109277700700000155320012_1095529325_855986

jrt      13631  0.5  1.4 25776 15276 ?       S    07:05   0:00 kpilotDaemon -session 11c0a80002000109277704400000155320015_1095529325_856224

jrt      13634  0.4  1.6 27612 17328 ?       S    07:05   0:00 kdeinit: kmix -session 11c0a80002000109277707900000155320018_1095529325_853764

jrt      13635  0.9  1.9 33656 20440 ?       S    07:05   0:00 kdeinit: konqueror --preload

jrt      13637  0.1  0.0  1940  984 tts/1    S+   07:05   0:00 top

jrt      13638  0.0  1.0 23780 11344 ?       S    07:05   0:00 kalarmd --login

jrt      13640  0.9  1.6 28608 17232 ?       S    07:06   0:00 kdeinit: konsole         

jrt      13641  0.1  0.1  3028 1756 pts/1    Rs   07:06   0:00 -bin/tcsh

jrt      13662  0.0  0.0  2332  808 pts/1    R+   07:06   0:00 ps aux

```

----------

## RemcoNL

I've always wondered why "free" and "ps aux" can't explain eachother most of the time... When "free" says something is using lots of memory (without reason), "ps aux" doesn't show a process that's responsible.

So my guess: it's a problem from "free" and the way the kernel counts it's free memory...

----------

## chunderbunny

try running top and listing processes by memory usage to track down the culrpit. You could have memory leak going on somewhere. Use < and > to change the active column in top.

----------

## Tarball

RemcoNL: I think maybe free is reporting correctly because when I try to compile the kernel, I get the following messages in /var/log/messages:

```
Free pages:         440kB (0kB HighMem)

Active:9638 inactive:453 dirty:0 writeback:0 unstable:0 free:110 slab:20765 mapped:9289 pagetables:129

DMA free:132kB min:44kB low:88kB high:132kB active:9064kB inactive:24kB present:16384kB

protections[]: 0 0 0

Normal free:308kB min:312kB low:624kB high:936kB active:29488kB inactive:1788kB present:114688kB

protections[]: 0 0 0

HighMem free:0kB min:128kB low:256kB high:384kB active:0kB inactive:0kB present:0kB

protections[]: 0 0 0

DMA: 19*4kB 3*8kB 0*16kB 1*32kB 0*64kB 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 132kB

Normal: 1*4kB 0*8kB 1*16kB 5*32kB 0*64kB 1*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 308kB

HighMem: empty

Swap cache: add 10041, delete 9495, find 1359/1641, race 0+0

Out of Memory: Killed process 16302 (ld).

```

chunderbunny: I've tried running top and sorting by memory but usually there is only a handful of processes that are reported more than 0% and the few that are reported are approximately 2-3%

```
top - 13:21:25 up 4 days,  5:58,  2 users,  load average: 0.00, 0.02, 0.04

Tasks:  55 total,   1 running,  54 sleeping,   0 stopped,   0 zombie

Cpu(s):  0.0% us,  0.2% sy,  0.0% ni, 99.8% id,  0.0% wa,  0.0% hi,  0.0% si

Mem:    126740k total,   102220k used,    24520k free,      836k buffers

Swap:   248996k total,     5112k used,   243884k free,    10196k cached

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

16307 jrt       16   0  6808 1792 3728 S  0.0  1.4   0:00.56 sshd

16308 jrt       15   0  2840 1728 1772 S  0.0  1.4   0:00.28 tcsh

16304 root      15   0  6604 1620 3600 S  0.0  1.3   0:00.09 sshd

16337 jrt       17   0  1988 1004 1772 R  0.7  0.8   0:05.64 top

18088 root      16   0  6000  796 4948 S  0.0  0.6   0:38.22 nmbd

 6807 root      16   0  1500  464 1304 S  0.0  0.4   0:00.84 metalog

 6733 root      16   0  3984  428 3616 S  0.0  0.3   0:00.02 sshd

 6818 root      16   0  1568  296 1396 S  0.0  0.2   0:00.60 cron

    1 root      16   0  1380  268 1224 S  0.0  0.2   0:00.71 init

 1772 root      16   0  2104  212 1668 S  0.0  0.2   0:00.05 su

 1775 root      16   0  2288  212 2088 S  0.0  0.2   0:00.08 bash

 6808 root      17   0  1464  208 1304 S  0.0  0.2   0:00.01 metalog

 1750 root      16   0  6604  208 3600 S  0.0  0.2   0:00.10 sshd

 1753 jrt       15   0  6808  208 3728 S  0.0  0.2   0:01.20 sshd

 6886 root      17   0  1412  204 1240 S  0.0  0.2   0:00.01 agetty

 6887 root      16   0  1412  204 1240 S  0.0  0.2   0:00.00 agetty

18084 root      16   0  8180  204 6840 S  0.0  0.2   0:00.08 smbd

18087 root      19   0  8180  204 6840 S  0.0  0.2   0:00.00 smbd

 6493 bin       16   0  1576  196 1400 S  0.0  0.2   0:00.09 portmap

 6871 root      18   0  2032  196 1704 S  0.0  0.2   0:00.03 xinetd

18015 nobody    16   0  1540  196 1372 S  0.0  0.2   0:00.03 rpc.statd

18033 root      17   0  1608  196 1396 S  0.0  0.2   0:00.32 rpc.mountd

 1754 jrt       15   0  2828  196 1772 S  0.0  0.2   0:00.31 tcsh

  724 root       6 -10  1356  160 1204 S  0.0  0.1   0:00.30 udevd

    2 root      RT   0     0    0    0 S  0.0  0.0   0:00.52 migration/0

    3 root      34  19     0    0    0 S  0.0  0.0   0:04.02 ksoftirqd/0

    4 root      RT   0     0    0    0 S  0.0  0.0   0:00.47 migration/1

    5 root      34  19     0    0    0 S  0.0  0.0   0:05.34 ksoftirqd/1

    6 root       5 -10     0    0    0 S  0.0  0.0   0:00.24 events/0

    7 root       5 -10     0    0    0 S  0.0  0.0   0:00.06 events/1

    8 root       5 -10     0    0    0 S  0.0  0.0   0:00.11 khelper

    9 root       5 -10     0    0    0 S  0.0  0.0   0:00.15 kblockd/0

   10 root       5 -10     0    0    0 S  0.0  0.0   0:00.03 kblockd/1

   33 root      15   0     0    0    0 S  0.0  0.0   0:05.60 pdflush

   32 root      15   0     0    0    0 S  0.0  0.0   0:00.03 kirqd

   34 root      15   0     0    0    0 S  0.0  0.0   0:00.21 pdflush

   36 root      10 -10     0    0    0 S  0.0  0.0   0:00.00 aio/0                                  

```

----------

## xgregx

The 2.6.x kernel seems to use alot of memory compared to the 2.4.x. Are you using 2.6.x?  I think because as mentioned before, it's designed to allocate most of the memory.  I can do a reboot, and in a half hour 97% of the memory is in use.  I don't think you have to worry.

----------

## Tarball

I am using a 2.6.x kernel but I don't think that is the problem.  My desktop machine is using about 30MB of 1GB after boot whereas my server is using 110MB of 128MB

You say in a half hour you are using 97% of memory but what is the output of free on your machine?

----------

## fryfrog

I think the important thing with linux is that you aren't using swap.  Linux tries to put as much stuff into cache as possible, when you need the memory for a program it is allocated.  As long as you aren't using any swap (and you aren't, from your two posts)... you should be fine.

If you get "out of memory" errors and aren't eating into any swap... I would imagine something else is possibly messed up.

----------

## Tarball

I hear what you are saying but if you look at the output of free in my first post, you will see that only 10MB is being used for cache.

There is still 100MB of programs resident in memory but this seems excessive for a machine not running X.

----------

## sn4ip3r

Whats the output of "cat /proc/meminfo"? Maybe something there can explain the memory usage.

----------

## Tarball

```

{chaos} /home/jrt% cat /proc/meminfo

MemTotal:       126740 kB

MemFree:          1952 kB

Buffers:         12860 kB

Cached:           9240 kB

SwapCached:        748 kB

Active:           9780 kB

Inactive:        14376 kB

HighTotal:           0 kB

HighFree:            0 kB

LowTotal:       126740 kB

LowFree:          1952 kB

SwapTotal:      248996 kB

SwapFree:       246532 kB

Dirty:              68 kB

Writeback:           0 kB

Mapped:           4464 kB

Slab:            98144 kB

Committed_AS:    14840 kB

PageTables:        412 kB

VmallocTotal:   909240 kB

VmallocUsed:      1100 kB

VmallocChunk:   906896 kB

```

----------

## darkphader

Late to the party but I see a similar issue on a server.

A rather recent install and it's currently only providing dhcp and dns services to the network (dhcpd, tinydns, and dnscache). For a while after rebooting only 39MB shows used but after the system has been running for a few days 1GB of memory shows used (2GB total in the server). I don't know why the dns cache would grow that big (and top shows dnscache using 0.1%) and I have no other explanation except for a possible memory leak (or could it be normal?)

Would like to know how to track this down.

Thanks.

Chris

----------

## bet1m

try:

```

top -b -n1

```

----------

## wll

Just a thought, but I think that slab memory usage may be the missing piece. Part of slab usage is disk inode and dentry caches, which are dynamically allocated, so are available to be shrunk if the system needs more memory for other purposes. However, this type of slab memory usage isn't shown by free.

So you can have a situation where your server shows lots of free memory, after rebooting, but after use shows less, even after subtracting the buffers and cache.

This was behind a lot of "where'd my memory go?" reports fixed on the slocate program's rebuilding its database daily -- this would cause the inode and dentry caches to expand and the "free" memory total to shrink.

I'm no expert, so all of the above may be false. However, notice the slab  98144 kB row in your /proc/meminfo output?

Try looking at /proc/slabinfo or running slabtop for more details.

Another easy way to boost slab usage is to run a find command over your entire hard disk. Heck, emerge sync does a good job.

Good luck.

----------

## darkphader

It seems that to firgure out what these commands are telling me I would have to be what I named this box.

```
einstein ~ # cat /proc/meminfo

MemTotal:      2076072 kB

MemFree:        998152 kB

Buffers:        274128 kB

Cached:         660940 kB

SwapCached:          0 kB

Active:         472508 kB

Inactive:       476980 kB

HighTotal:     1179584 kB

HighFree:       500992 kB

LowTotal:       896488 kB

LowFree:        497160 kB

SwapTotal:     1469936 kB

SwapFree:      1469936 kB

Dirty:              20 kB

Writeback:           0 kB

Mapped:           9824 kB

Slab:           119268 kB

CommitLimit:   2507972 kB

Committed_AS:    14932 kB

PageTables:        504 kB

VmallocTotal:   114680 kB

VmallocUsed:      2428 kB

VmallocChunk:   112184 kB
```

```
einstein ~ # free

             total       used       free     shared    buffers     cached

Mem:       2076072    1077920     998152          0     274128     660940

-/+ buffers/cache:     142852    1933220

Swap:      1469936          0    1469936
```

```
einstein ~ # top -b -n1

top - 16:13:44 up 4 days, 21:25,  1 user,  load average: 0.00, 0.00, 0.00

Tasks:  55 total,   1 running,  54 sleeping,   0 stopped,   0 zombie

Cpu(s):  1.7% us,  0.5% sy,  0.0% ni, 97.8% id,  0.0% wa,  0.0% hi,  0.0% si

Mem:   2076072k total,  1078048k used,   998024k free,   274128k buffers

Swap:  1469936k total,        0k used,  1469936k free,   660940k cached

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

    1 root      16   0  1392  436  388 S  0.0  0.0   0:00.72 init

    2 root      RT   0     0    0    0 S  0.0  0.0   0:00.99 migration/0

    3 root      34  19     0    0    0 S  0.0  0.0   0:00.03 ksoftirqd/0

    4 root      RT   0     0    0    0 S  0.0  0.0   0:00.98 migration/1

    5 root      34  19     0    0    0 S  0.0  0.0   0:00.03 ksoftirqd/1

    6 root       5 -10     0    0    0 S  0.0  0.0   0:00.00 events/0

    7 root       5 -10     0    0    0 S  0.0  0.0   0:00.00 events/1

    8 root       5 -10     0    0    0 S  0.0  0.0   0:00.02 khelper

   22 root       5 -10     0    0    0 S  0.0  0.0   0:00.02 kacpid

  103 root       5 -10     0    0    0 S  0.0  0.0   0:00.04 kblockd/0

  104 root       5 -10     0    0    0 S  0.0  0.0   0:00.00 kblockd/1

  153 root      20   0     0    0    0 S  0.0  0.0   0:00.00 pdflush

  154 root      15   0     0    0    0 S  0.0  0.0   0:07.16 pdflush

  156 root       8 -10     0    0    0 S  0.0  0.0   0:00.00 aio/0

  155 root      25   0     0    0    0 S  0.0  0.0   0:00.00 kswapd0

  157 root       8 -10     0    0    0 S  0.0  0.0   0:00.00 aio/1

  745 root      25   0     0    0    0 S  0.0  0.0   0:00.00 kseriod

  781 root      17   0     0    0    0 S  0.0  0.0   0:00.00 scsi_eh_0

  782 root      15   0     0    0    0 S  0.0  0.0   0:00.00 ahc_dv_0

  788 root      16   0     0    0    0 S  0.0  0.0   0:00.00 scsi_eh_1

  789 root      15   0     0    0    0 S  0.0  0.0   0:00.00 ahc_dv_1

  800 root      15   0     0    0    0 S  0.0  0.0   0:00.00 kirqd

  801 root       5 -10     0    0    0 S  0.0  0.0   0:00.33 reiserfs/0

  802 root       5 -10     0    0    0 S  0.0  0.0   0:00.14 reiserfs/1

 5327 root       6 -10  1372  368  288 S  0.0  0.0   0:00.07 udevd

 5349 root      16   0     0    0    0 S  0.0  0.0   0:00.00 khubd

 6613 root      15   0  1656  736  560 S  0.0  0.0   0:07.36 syslog-ng

 7270 dhcp      16   0  2648 1568  956 S  0.0  0.1   0:13.27 dhcpd

 7483 root      16   0  1276  312  264 S  0.0  0.0   0:00.00 svscan

 7494 root      16   0  1244  280  240 S  0.0  0.0   0:00.00 supervise

 7495 root      16   0  1244  280  240 S  0.0  0.0   0:00.00 supervise

 7496 root      16   0  1244  280  240 S  0.0  0.0   0:00.00 supervise

 7497 root      16   0  1244  280  240 S  0.0  0.0   0:00.00 supervise

 7499 tinydns   16   0  1500  344  280 S  0.0  0.0   0:00.02 tinydns

 7500 dnscache  15   0  2680 1384  312 S  0.0  0.1   0:05.62 dnscache

 7501 dnslog    16   0  1256  284  240 S  0.0  0.0   0:00.00 multilog

 7502 dnslog    15   0  1256  332  284 S  0.0  0.0   0:02.98 multilog

 7503 root      16   0  2648 1072  824 S  0.0  0.1   0:00.01 ntpd

 7504 ntp       16   0  2648 1088  836 S  0.0  0.1   0:00.50 ntpd

 7552 root      16   0  3320 1488 1220 S  0.0  0.1   0:00.00 sshd

 7592 root      16   0  1656  708  592 S  0.0  0.0   0:00.04 cron

 7605 root      17   0  1440  580  508 S  0.0  0.0   0:00.00 agetty

 7606 root      17   0  1440  580  508 S  0.0  0.0   0:00.00 agetty

 7607 root      16   0  1440  580  508 S  0.0  0.0   0:00.00 agetty

 7608 root      16   0  1440  580  508 S  0.0  0.0   0:00.00 agetty

 7609 root      16   0  1440  580  508 S  0.0  0.0   0:00.00 agetty

 7610 root      16   0  1440  580  508 S  0.0  0.0   0:00.00 agetty

17340 root      16   0  2564 1344  948 S  0.0  0.1   0:11.85 screen

17341 root      16   0  2268 1348 1076 S  0.0  0.1   0:00.02 bash

  925 root      16   0  5964 1852 1500 S  0.0  0.1   0:00.02 sshd

  931 smythe    16   0  6180 2020 1636 S  0.0  0.1   0:00.00 sshd

  932 smythe    15   0  2528 1344 1100 S  0.0  0.1   0:00.00 bash

  939 root      16   0  2140 1016  792 S  0.0  0.0   0:00.00 su

  940 root      16   0  2264 1368 1112 S  0.0  0.1   0:00.00 bash

  945 root      15   0  1976  944  732 R  0.0  0.0   0:00.00 top
```

Maybe it is just cached info from an 'emerge sync' and scheduled locate db rebuilds and nothing to worry about. But  I'm still wondering what particular pieces of info might lead me to that conclusion.

Chris

----------

## Tarball

 *darkphader wrote:*   

> It seems that to firgure out what these commands are telling me I would have to be what I named this box.
> 
> --- 8< snip 8< --------------------
> 
> ```
> ...

 

What this is telling you is that you are using about 142MB, the important figures are on the second row.  These tell you what your used/free memory is if the system was to claim back all the cache being used!

----------

## darkphader

 *Tarball wrote:*   

> What this is telling you is that you are using about 142MB

 

Yikes! Looks like it's time to add more memory!

Just kidding. I guess that seems about right considerung what little the system is currently doing.

Thanks.

Chris

----------

## kuwanger

Okay, I did a little reading up on slabinfo and wrote a line that might be useful to you.  It prints out a descending list of slabs (and a total) to less.  Maybe that'll give you some idea what you've got ~90MB being used by slabs.

```

size=0; cat /proc/slabinfo | egrep -v '^(#|slabinfo -)' | ( while read -a list; do size=$((size+(list[5]*list[14]))); echo $((list[5]*list[14]*4))K : ${list[0]}; done; echo $((size*4))K : Total) | sort -rg | less; unset size

```

I'd be interested in seeing the results, actually.

----------

## LucaSpiller

Wow, this slab thing explains a lot of stuff. I have a couple of Qs though: I guess the inode caches reduces in size whenever a program needs more memory, so is there something that will show the memory that is actually available, minus the buffers / caches / slab / whatever? I guess you can work out what is being used by doing the following with the stuff from /proc/meminfo:

```
MemTotal - MemFree - Buffers - Cached - Slab (- PageTables?)
```

If so with even with X running I am only using about 14mb. Bill wasn't too far off 640k being enough for anyone.  :Laughing: 

Just to show how great an effect it can cause, on my newly installed system without X running I ran free -m before and after updatedb. Also before that I checked the slab usage as 13mb.

```
fe04 root # free -m

             total       used       free     shared    buffers     cached

Mem:           501        172        329          0         39        111

-/+ buffers/cache:         21        479

Swap:         1019          0       1019

fe04 root # updatedb

fe04 root # free -m

             total       used       free     shared    buffers     cached

Mem:           501        495          6          0        149        134

-/+ buffers/cache:        210        291

Swap:         1019          0       1019
```

```
207868K : Total

56576K : reiser4_inode

43176K : fat_inode_cache

43016K : dentry_cache

36448K : reiser_inode_cache

8832K : buffer_head

7440K : dentry_fsdata

3380K : znode

2612K : radix_tree_node

1024K : biovec-(256)

832K : size-32768

580K : jnode

416K : biovec-128

404K : size-128

396K : inode_cache

368K : size-8192

264K : size-64

208K : biovec-64

148K : size-4096

128K : size-65536

128K : size-131072

124K : size-1024

108K : size-512

104K : sysfs_dir_cache

100K : pgd

88K : size-32

72K : size-2048

64K : sgpool-128

60K : vm_area_struct

60K : task_struct

60K : sighand_cache

60K : filp

52K : biovec-16

48K : proc_inode_cache

32K : sgpool-64
```

----------

## darkphader

 *kuwanger wrote:*   

> It prints out a descending list of slabs

 

reiser_inode_cache biggest user here:

```
92248K : Total

52568K : reiser_inode_cache

19516K : dentry_cache

11476K : radix_tree_node

2768K : buffer_head

1024K : biovec-(256)

628K : shmem_inode_cache

576K : size-4096

560K : inode_cache

416K : biovec-128

344K : size-64

288K : size-2048

208K : biovec-64

180K : size-1024

144K : vm_area_struct

140K : size-512

132K : pgd

108K : task_struct

104K : size-128

100K : proc_inode_cache

...

```

----------

## darkphader

My desktop system as opposed to the server:

```
47272K : Total

19400K : buffer_head

7260K : radix_tree_node

7188K : reiser_inode_cache

3264K : dentry_cache

2624K : size-4096

1024K : biovec-(256)

624K : shmem_inode_cache

540K : vm_area_struct

488K : filp

436K : size-64

416K : biovec-128

404K : inode_cache

324K : pgd

272K : size-128

252K : size-32

228K : size-1024

208K : biovec-64

192K : size-65536

184K : skbuff_head_cache

180K : size-512

176K : task_struct

160K : size-16384

152K : sighand_cache

128K : size-131072

...
```

----------

