Solaris memory reported incorrectly by top

Hi guys,

I got an issue today with one of my servers. The guy is reporting by top only 1.8 available Gig for physical memory.

I see my processes and they don't even get to 15Gigs, I have 64 physical Gigs.
Details
Memory: 64G phys mem, 1820M free mem, 32G total swap, 32G free swap

I have tried ps, the ucb ps, prstat, etc. and I don't see where that memory is going ( if it is going some where)

Any help on finding what it could he happening is greatly appreciated. BTW, this is a Solaris 5.10

My guess would be that the system is using most of the "missing" memory as a file cache. If so, that's a good thing.

Regards,
Alister

hmm ... how do I check that? do you know.

Because the problem is, that I need to start another application that will take 2 gigs at once, and it is failing because it is showing memory lower than that.

I am not familiar with Solaris, but a quick search turns up:

echo ::memstat | mdb -k

I am not familiar with that tool, so use at your own peril.

These days, a lot of systems use free ram as a file cache. Applications that require a given amount of ram should not assume that it is not available just because "free" is low. They should just go ahead and attempt the allocation. Besides, due to the race condition that exists between the time of the check and when the allocation occurs, an interval during which available memory can diminish, a well-coded program will still need to handle an allocation failure.

Regards,
Alister

Maybe the kernel/drivers leak memory.
Get the latest patch for your NIC driver!
Also install a newer kernel patch - it often includes updated drivers.