Thanks for a great explanation Craig, makes more sense now.
Tim
-----Original Message-----
From: Craig A. James [mailto:cjames@modgraph-usa.com]
Sent: Friday, May 05, 2006 10:51 AM
To: mcelroy, tim
Cc: pgsql-performance@postgresql.org
Subject: Re: [PERFORM] Memory and/or cache issues?
mcelroy, tim wrote:
> Sorry, been up all night and maybe provided too much information or not
> the right information and only confused folks, tired I guess. When I
> say 'in use' I am referring to the 'used' column. Thanks all who have
> responded to this inquiry, I appreciate it.
>
> Here's free from PROD001:
> [root@wbibsngwyprod001 kernel]# free -k -t
> total used free shared buffers cached
> Mem: 7643536 6975772 667764 0 165496 5393396
> -/+ buffers/cache: 1416880 6226656
> Swap: 8185108 5208 8179900
> Total: 15828644 6980980 8847664
On Linux (unlike most Unix systems), "used" includes both processes AND the kernel's file-system buffers, which means "used" will almost always be close to 100%. Starting with a freshly-booted system, you can issue almost any command that scans files, and "used" will go up and STAY at nearly 100% of memory. For example, reboot and try "tar cf - / >/dev/null" and you'll see the same sort of "used" numbers.
In My Humble Opinion, this is a mistake in Linux. This confuses just about everyone the first time they see it (including me), because the file-system buffers are dynamic and will be relenquished by the kernel if another process needs memory. On Unix systems, "used" means, "someone else is using it and you can't have it", which is what most of us really want to know.
Craig