Leaking memory in kernel 3.8.13bone65 ?

HI,

I’m working on a beaglebone black kernel 3.8.13bone65 .

My problem is that I don’t have any program running, but the memory is almost full :

root@beaglebone:~# uname -a
Linux beaglebone 3.8.13-bone65 #3 SMP Thu Sep 18 09:39:21 CEST 2014 armv7l GNU/Linux

root@beaglebone:~# free -m
total used free shared buffers cached
Mem: 496 410 85 0 78 184
-/+ buffers/cache: 146 349
Swap: 0 0 0

root@beaglebone:~# ps aux --sort -rss
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1094 0.2 1.4 14760 7576 ? S Feb24 7:48 /usr/bin/python -O /usr/share/wicd/daemon/monitor.py
root 1086 0.5 1.3 23880 6924 ? S Feb24 17:35 /usr/bin/python -O /usr/share/wicd/daemon/wicd-daemon.py
root 958 0.0 1.0 12484 5360 tty2 Ss+ Feb24 0:00 X
root 680 0.0 0.6 25416 3300 ? Ssl Feb24 0:00 /usr/sbin/console-kit-daemon --no-daemon
root 681 0.0 0.6 24548 3152 ? Ssl Feb24 0:00 /usr/lib/upower/upowerd
root 868 0.0 0.5 21936 2744 ? Ssl Feb24 0:00 /usr/lib/policykit-1/polkitd --no-debug
root 1 0.0 0.5 4496 2656 ? Ss Feb24 0:01 /lib/systemd/systemd
root 4915 0.0 0.4 7860 2360 ? Ss 22:46 0:00 sshd: root@notty
root 5478 0.0 0.4 7860 2360 ? Ss 23:32 0:00 sshd: root@notty
root 5502 0.3 0.4 7720 2332 ? Ss 23:34 0:01 sshd: root@pts/0
root 676 0.0 0.3 4600 1564 ? Ss Feb24 0:00 /sbin/wpa_supplicant -u -s -O /var/run/wpa_supplicant
root 203 0.0 0.3 4404 1532 ? Ss Feb24 0:10 /lib/systemd/systemd-journald
root 682 0.0 0.3 28392 1528 ? Ssl Feb24 0:03 /usr/sbin/rsyslogd -n -c5
root 5505 0.0 0.2 2640 1520 pts/0 Ss 23:34 0:00 -bash
avahi 667 0.0 0.2 2760 1432 ? Ss Feb24 0:00 avahi-daemon: running [beaglebone.local]
101 673 0.2 0.2 2716 1424 ? Ss Feb24 7:15 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --sys
root 225 0.0 0.2 2544 1416 ? Ss Feb24 0:00 /sbin/udevd
root 677 0.0 0.2 2916 1264 ? Ss Feb24 0:00 /lib/systemd/systemd-logind
root 978 0.0 0.2 2540 1084 ? S Feb24 0:00 /sbin/udevd
root 979 0.0 0.2 2540 1024 ? S Feb24 0:00 /sbin/udevd
root 884 0.0 0.1 5160 968 ? Ss Feb24 0:00 /usr/sbin/sshd
root 5614 0.0 0.1 2484 916 pts/0 R+ 23:41 0:00 ps aux --sort -rss
root 4918 0.0 0.1 1772 796 ? Ss 22:46 0:00 /usr/lib/openssh/sftp-server -f LOCAL5 -l INFO
root 5481 0.0 0.1 1772 796 ? Ss 23:32 0:00 /usr/lib/openssh/sftp-server -f LOCAL5 -l INFO
root 701 0.0 0.1 3344 716 tty1 Ss+ Feb24 0:00 /sbin/agetty tty1 38400
root 702 0.0 0.1 3164 712 ttyO0 Ss+ Feb24 0:00 /sbin/agetty -s ttyO0 115200 38400 9600
root 890 0.0 0.1 3356 704 ? Ss Feb24 0:01 /usr/sbin/cron
root 674 0.0 0.1 1332 684 ? Ss Feb24 0:00 /usr/sbin/acpid
root 1010 0.0 0.1 1780 544 ? Ss Feb24 0:00 /usr/sbin/udhcpd -S /etc/udhcpd.conf
avahi 717 0.0 0.0 2760 500 ? S Feb24 0:00 avahi-daemon: chroot helper

Do you know how can i find out who is using that much of memory ? Do you think that it can be the kernel ? the log ?

Micka,

I got my answer :

“A running Linux system will quickly end up allocating all “free” memory to disk cache. This memory is still free because it can be reclaimed from cache and given to processes without any delay”

Micka,

Yes . . . right now I have 25MB used, but if i use apt-get update && apt-get upgrade to update Debian. The system will show ever 100MB used by the system, after done, and nothing else running.

ever == over

Something is intriguing me,

Based on this website : http://www.tldp.org/LDP/sag/html/buffer-cache.html

In traditional UNIX systems, there is a program called update running in the background which does a sync every 30 seconds, so it is usually not necessary to use sync. Linux has an additional daemon, bdflush, which does a more imperfect sync more frequently to avoid the sudden freeze due to heavy disk I/O that sync sometimes causes.

Under Linux, bdflush is started by update. There is usually no reason to worry about it, but if bdflush happens to die for some reason, the kernel will warn about this, and you should start it by hand (/sbin/update).

But I didn’t find this program running…

pidof update => NULL
pidof bdflush => NULL

Does someone know why ? Is that normal ?

Micka,