# FreeBSD less cache hungry compared to the Penguin?



## lockfile (Mar 3, 2011)

On Penguin, the system eats up a ton of RAM. I have 4G and the system would gulp around 2.5G and the rest would be for new apps. Under FreeBSD, I have 3.5G for my apps, and the 0.5G is used by the system while I run Firefox and play some movies.

I find it odd that I have so much RAM left over. Did anybody else notice this when they run Penguin?


----------



## xibo (Mar 5, 2011)

Your "Penguin" OS is pretty poorly configured then. Or are you considering X11 and buffers/caches to be part of the linux/gnu resource usage?

EDIT
considering your thread title, linux -per default- use up to 512MiB for write caching (dirty line in /proc/meminfo is the current usage, maximal is somewhere else in /proc), but it will usually be much less. On the other hand it does not have a limit for read caches.
FreeBSD -per default- uses about a megabyte of write cache (vfs.hirunningspace), and about a tenth of your memory (vfs.hibufspace) for read caching.

Eventually a supersized read cache becomes usefull in some specific situations (e.g. nfs serving, multipass video encoding, ...) but usually you don't need it. There's actually no need for the kernel to free the memory of a buffer though unless it's needed by other processes, and therefore won't drastically harm your performance - eventually a few kernel routines more need to be executed when a process requests its heap size to be increased, that's all.


----------



## Alt (Mar 6, 2011)

lockfile said:
			
		

> On Penguin, the system eats up a ton of RAM. I have 4G and the system would gulp around 2.5G and the rest would be for new apps. Under FreeBSD, I have 3.5G for my apps, and the 0.5G is used by the system while I run Firefox and play some movies.


It can depend on caching mechanism. Some OSes can cache aggressive style, some of them do less caching. Same for FS implementation on OS. For example, ZFS should eat much more memory for this.

Anyway, you cannot surely rely on "mbytes free memory" ratio, because it's not point you how much app you can run -- usually you can run more than this figure. It's because OS can free some buffers, flush some caches, descriptors, swap out some programs, do something more... This is good way when OS use whole mem of system, increasing run speed for *current* needs, surely it can free some mem in future, if it will be needed.


----------

