List, I've installed my CentOS Server running progress 9.1D database system, with only 15 users working every day, this server has 2GB RAM, so, my question is: Why the 2GB of RAM is always used? Even with only one user connected... How can I messuare the real RAM MEM used by my system split in proccess? Is there another tools which I use to compare the results from top. Or vmstat?
Regards, Israel
Linux kernel uses all ram for processes. whatever is left is used for caching files to ram and buffers to speed things up. you can use the command free to see what the real used memory is in a simple format.
israel.garcia@cimex.com.cu wrote:
List, I've installed my CentOS Server running progress 9.1D database system, with only 15 users working every day, this server has 2GB RAM, so, my question is: Why the 2GB of RAM is always used? Even with only one user connected... How can I messuare the real RAM MEM used by my system split in proccess? Is there another tools which I use to compare the results from top. Or vmstat?
Regards, Israel
CentOS mailing list CentOS@centos.org http://lists.centos.org/mailman/listinfo/centos
If looking at top, then you can usually assume that free memory is roughly a little less than 'free + buffers + cached'.
free is not used at all - this is memory being wasted by the system, thus is usually kept minimized (just enough to prevent deadlocks)
buffers can usually be flushed to disk or dropped
cached is the disk cache and can also be dropped
but even then part of the remaining used memory is readonly-file-backed (for example executables) and can also be dropped (in low memory situations)...
I'd guess the proper answer is that if it works nicely then you have enough RAM :) if it doesn't - you need more.
Cheers, MaZe.
On Mon, 30 May 2005, israel.garcia@cimex.com.cu wrote:
List, I've installed my CentOS Server running progress 9.1D database system, with only 15 users working every day, this server has 2GB RAM, so, my question is: Why the 2GB of RAM is always used? Even with only one user connected... How can I messuare the real RAM MEM used by my system split in proccess? Is there another tools which I use to compare the results from top. Or vmstat?
Regards, Israel
CentOS mailing list CentOS@centos.org http://lists.centos.org/mailman/listinfo/centos
On Mon, 2005-05-30 at 10:10 -0500, israel.garcia@cimex.com.cu wrote:
List, I've installed my CentOS Server running progress 9.1D database system, with only 15 users working every day, this server has 2GB RAM, so, my question is: Why the 2GB of RAM is always used? Even with only one user connected... How can I messuare the real RAM MEM used by my system split in proccess? Is there another tools which I use to compare the results from top. Or vmstat?
Linux uses all the memory (on purpose). It uses it as recoverable cache and buffers ... which it can release the oldest parts of if necessary to give it to real processes.
In vmstat ... take:
Actual_RAM - buffers - cached = Real RAM in use
in CentOS-4's top ... same thing:
Actual - Buffers - cached = Real Ram in Use
On Mon, 2005-05-30 at 10:10 -0500, israel.garcia@cimex.com.cu wrote:
List, I've installed my CentOS Server running progress 9.1D database system, with only 15 users working every day, this server has 2GB RAM, so, my question is: Why the 2GB of RAM is always used? Even with only one user connected... How can I messuare the real RAM MEM used by my system split in proccess? Is there another tools which I use to compare the results from top. Or vmstat?
There is vmstat, iostat, etc... all sorts of things for tracking memory, I/O and other usage.
The Linux kernel is very dynamic when it comes to how it manages user, buffer and cache. It's a very efficient approach that works well. In dealing with databases, you're going to have very large reads/commits that will be cached/buffered, as well as the binaries involved (which can be very extensive). So the kernel will typically be using all of your memory at any time, although it will drop cached as soon as it needs it for user or buffers.
BTW, on anything but an AMD64 platform, 2GB can be a "weak spot" in memory size. You typically either want to be 1GB (actually, 960MB), or 4GB+, because of the performance hit that occurs when you use the 4/4GB model versus the 1/3GB model for anything but AMD64 (even Intel EM64T has some issues with its 32-bit AGTL+ physical platform).
Just something to be wary of. It will depend on your application if 2GB is better than 1GB on a 32-bit physical Intel/AMD platform, instead of AMD64 (which is a 40-bit physical platform).