How the free memory threshold?

If I understand your question correctly, you are asking for an explanation of Solaris memory manager. You'd better ask Oracle that question because you are talking about Solaris kernel internals.

The operating system kernel has no reason to kick a process's memory set out of real memory until another process needs to use that real memory. Why would the kernel page out part or all of a memory set without a reason only to find that the next process to run needs it paged back in?

Therefore, it's quite normal for free memory to be low compared to actual installed real memory after the system has been running for a while. Don't worry about it unless you have a reason to.

In addition to what hicksd8 wrote, you should be aware that different tools might have a different idea about what free memory means. You should also state what Solaris version/update you are running.

I never use top under Solaris and I would suggest you to use

echo ::memstat | mdb -k

to get a better idea about your RAM usage.

In any case, consider unused RAM is wasted RAM.

1 Like

Note: using mdb ( good idea! ) requires root privilege - you are reading directly from the kernel.

I am no Solaris expert, but this is a common trait of UNIX-kernels: they commit otherwise unused memory to file caching. When you start there is a lot of free RAM as no applications have been started yet but at the same time there is nothing which makes sense to cache, so the RAM remains free.

Once your application(s) start(s) not only does that use RAM but the processes also use (-> load/write to) certain parts of the filesystem to work with. Now that a pattern of file usage emerges the UNIX kernel uses leftover RAM to cache exactly these parts of the filesystem. Hence the free memory seemingly drops.

Most UNIX kernels (and i suppsoe Solaris does too, in AIX this is called minperm and maxperm) also have some tuning parameter for how much memory should not be used for file caching but always be available for programs. I suppose this is set to effectively 1.5GB, so you see the memory not dropping below this point.

I hope this helps.

bakunin

.