I have set up Mailman on a virtual private server from 1and1 running Centos, though I can't tell which version. The system has 2 GB of memory. Mailman is receiving posts, but it is not sending them out to everybody. It is also getting some out-of-memory errors. The server is also runing Plesk for Web hosting. Something on the server is leaking memory. When first booted it has nearly 1.5 GB of free memory. Now this is down to .75 GB. Any hints will be appreciated.
Thanks,
On 11/12/2011 09:07 AM, John J. Boyer wrote:
I have set up Mailman on a virtual private server from 1and1 running Centos, though I can't tell which version. The system has 2 GB of memory. Mailman is receiving posts, but it is not sending them out to everybody. It is also getting some out-of-memory errors. The server is also runing Plesk for Web hosting. Something on the server is leaking memory. When first booted it has nearly 1.5 GB of free memory. Now this is down to .75 GB. Any hints will be appreciated.
Linux puts things in cache using extra (unused) memory. It is absolutely normal to have "Free Memory" go down to a fairly small level and have Buffers and Cache grow.
If you are getting out of memory errors, you can tweek the amount of memory that they system keeps in reserve using "vm.min_free_kbytes" in /etc/sysctl.conf
http://lists.centos.org/pipermail/centos/2006-December/030761.html
This is a good article that discusses how to adjust this too:
http://www.dba-oracle.com/t_tuning_linux_kernel_2_6_oracle.htm
As far as what version of CentOS you have ... you can figure that out with:
cat /etc/redhat-release
On Sat, Nov 12, 2011 at 09:45:04AM -0600, Johnny Hughes wrote:
Linux puts things in cache using extra (unused) memory. It is absolutely normal to have "Free Memory" go down to a fairly small level and have Buffers and Cache grow.
Why does Linux do this? It seems odd to me.
If you are getting out of memory errors, you can tweek the amount of memory that they system keeps in reserve using "vm.min_free_kbytes" in /etc/sysctl.conf
I don't find vm.min_free_byes in sysctl.conf. It isn't mentioned in the man pages.
Thanks. John
http://lists.centos.org/pipermail/centos/2006-December/030761.html
This is a good article that discusses how to adjust this too:
http://www.dba-oracle.com/t_tuning_linux_kernel_2_6_oracle.htm
As far as what version of CentOS you have ... you can figure that out with:
cat /etc/redhat-release
CentOS mailing list CentOS@centos.org http://lists.centos.org/mailman/listinfo/centos
On 11/13/2011 05:32 AM, John J. Boyer wrote:
On Sat, Nov 12, 2011 at 09:45:04AM -0600, Johnny Hughes wrote:
Linux puts things in cache using extra (unused) memory. It is absolutely normal to have "Free Memory" go down to a fairly small level and have Buffers and Cache grow.
Why does Linux do this? It seems odd to me.
Because it means that once you've accessed something once, accessing it a second time is orders of magnitude faster. Memory that is not being used at all is a waste of resources. It dramatically improves the performance of a system to use otherwise unused memory for caching and buffers.
Am 13.11.2011 14:32, schrieb John J. Boyer:
On Sat, Nov 12, 2011 at 09:45:04AM -0600, Johnny Hughes wrote:
Linux puts things in cache using extra (unused) memory. It is absolutely normal to have "Free Memory" go down to a fairly small level and have Buffers and Cache grow
Why does Linux do this? It seems odd to me
because taht is why linux is in some cases thousand times faster as reading the same things over and over from the disk and why would you install many GB memory if it is unused
target of a modern operating system is using 16 GB of 16 GB memory after some time and if any application requests actively memory the oldest caches/buffers are reclaimed to the app
[harry@srv-rhsoft:~]$ uptime 17:14:54 up 3:54, 6 users, load average: 0.00, 0.04, 0.12
[harry@srv-rhsoft:~]$ free -m total used free shared buffers cached Mem: 16035 15366 668 0 118 12951 -/+ buffers/cache: 2296 13738 Swap: 2047 0 2047
On 11/13/11 8:15 AM, Reindl Harald wrote:
[harry@srv-rhsoft:~]$ free -m total used free shared buffers cached Mem: 16035 15366 668 0 118 12951 -/+ buffers/cache: 2296 13738 Swap: 2047 0 2047
to better explain that output... the numbers you really want to look at are the -/+ buffers/caches lines...
At the moment of that output, this machine had 2.2GB used, and 13.7GB free out of 16GB total. 12.9GB is currently holding cached files, but those pages can be reused instantly, they are all available for reuse.
Vreme: 11/13/2011 02:32 PM, John J. Boyer piše:
Linux puts things in cache using extra (unused) memory. It is
absolutely normal to have "Free Memory" go down to a fairly small level and have Buffers and Cache grow.
Why does Linux do this? It seems odd to me.
It is rational usage of available resources. If you utilize available memory for caching purposes you speed up all services and reduce hard disk usage, so hard disk lasts longer and all services/programs/daemons are more snappier (higher performance).
On Sunday 13 November 2011 08:32, John J. Boyer wrote:
Why does Linux do this? It seems odd to me.
Suppose you have 4 Gb of RAM, of which only 1 Gb is used. What good is the other 3 Gb doing you? You might as well not have it at all.
Instead of leaving the RAM unused, Linux uses it as a cache. It can't hurt, and it can help. If a programme needs the memory, Linux will make it available to the programme quickly enough.
"free" gives me the following report:
$ free total used free shared buffers cached Mem: 4147456 3991600 155856 0 98556 2739992 -/+ buffers/cache: 1153052 2994404 Swap: 3911788 248 3911540
Therefore, I have 4 Gb of RAM, of which about 1 Gb is used for the programmes and a little under 3 Gb is used as a cache.
Apparently Windows finally decided to use a similar approach, which it calls SuperFetch.
I'm not sure how to disable the cache entirely, but to clear it, with kernel 2.6.16 or later, do the following as root:
sync ; echo 3 > /proc/sys/vm/drop_caches
On 11/13/11 3:37 PM, Yves Bellefeuille wrote:
Apparently Windows finally decided to use a similar approach, which it calls SuperFetch.
windows has been doing this since NT 3.1 circa 1993. superfetch is something completely different.