我的 Centos 服务器会泄漏内存吗?

oni*_*nik 5 linux memory memory-leak centos6

我收到了一些关于虚拟化服务器内存使用的相互矛盾的信息。最令人震惊的信息是:

每天服务器内存使用量

请注意,服务器仅分配了 4GB 的 RAM,即使已提交显示 12GB。

另外,如果我运行,ps aux | grep httpd我会得到以下信息:

root      1566  0.1  9.5 580392 375540 ?       Ss   Jun18  96:15 /usr/local/apache/bin/httpd -k start -DSSL
root      4212  0.0  9.4 580388 371948 ?       S    08:01   0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody    7674  0.6  9.5 580392 373600 ?       S    08:26   0:02 /usr/local/apache/bin/httpd -k start -DSSL
nobody   10894  0.6  9.5 580532 373508 ?       S    08:28   0:01 /usr/local/apache/bin/httpd -k start -DSSL
nobody   11668  0.6  9.5 580392 373600 ?       S    08:29   0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody   11669  0.6  9.5 580392 373512 ?       S    08:29   0:01 /usr/local/apache/bin/httpd -k start -DSSL
nobody   11975  0.6  9.5 580392 373492 ?       S    08:29   0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody   12108  0.7  9.5 580392 373492 ?       S    08:29   0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody   12993  0.6  9.5 580392 373492 ?       S    08:30   0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody   13080  0.6  9.5 580392 373492 ?       S    08:30   0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody   13211  0.6  9.5 580392 373492 ?       S    08:30   0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody   13496  0.6  9.5 580392 373520 ?       S    08:30   0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody   13497  0.6  9.5 580392 373492 ?       S    08:30   0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody   13829  0.6  9.5 580392 373492 ?       S    08:30   0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody   13858  0.6  9.5 580392 373492 ?       S    08:30   0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody   13963  0.6  9.5 580392 373484 ?       S    08:30   0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody   14070  0.7  9.5 580392 373492 ?       S    08:31   0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody   14290  0.6  9.5 580392 373492 ?       S    08:31   0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody   14404  0.6  9.5 580392 373484 ?       S    08:31   0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody   14745  0.6  9.5 580392 373492 ?       S    08:31   0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody   14850  0.6  9.5 580392 373484 ?       S    08:31   0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody   14957  0.5  9.5 580392 373484 ?       S    08:31   0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody   15061  0.6  9.5 580392 373492 ?       S    08:31   0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody   15174  0.8  9.5 580392 373492 ?       S    08:31   0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody   15228  0.6  9.5 580392 373484 ?       S    08:31   0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody   15263  0.4  9.5 580392 373484 ?       S    08:31   0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody   15264  0.5  9.5 580392 373484 ?       S    08:31   0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody   15290  0.7  9.5 580392 373484 ?       S    08:31   0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody   15291  0.5  9.5 580392 373484 ?       S    08:31   0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody   15294  0.4  9.5 580392 373484 ?       S    08:31   0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody   15296  0.6  9.5 580392 373492 ?       S    08:31   0:00 /usr/local/apache/bin/httpd -k start -DSSL
nobody   15401  0.5  9.5 580392 373484 ?       S    08:32   0:00 /usr/local/apache/bin/httpd -k start -DSSL
root     15506  0.0  0.0 103228   840 pts/0    S+   08:32   0:00 grep httpd
Run Code Online (Sandbox Code Playgroud)

这总共使用了超过 294.5% 的内存。

top 也给出了类似的结果。

但是,如果我运行,free -m我会得到这个:

             total       used       free     shared    buffers     cached
Mem:          3831       3647        184          0        257       2358
-/+ buffers/cache:       1031       2799
Swap:         4031         29       4002
Run Code Online (Sandbox Code Playgroud)

这对我来说似乎没问题,没有过度使用内存的迹象。

服务器相对较快,没有异常停机/缓慢,我想保持这种状态。异常读数只是异常,还是更严重的情况?

B14*_*4D3 3

你有足够的内存。如果您使用的内存达到最大数量,并且缓冲区和缓存将非常低,那么您可能会遇到内存问题,而交换的使用将会增加,那么您可能会遇到可用 RAM 的问题。从你的帖子来看,一切正常......

这是提交内存的简单解释:

Committed_AS: An estimate of how much RAM you would need to make a 99.99% guarantee that there never is OOM (out of memory) for this workload. Normally the kernel will overcommit memory. That means, say you do a 1GB malloc, nothing happens, really. Only when you start USING that malloc memory you will get real memory on demand, and just as much as you use. So you sort of take a mortgage and hope the bank doesn't go bust. Other cases might include when you mmap a file that's shared only when you write to it and you get a private copy of that data. While it normally is shared between processes. The Committed_AS is a guesstimate of how much RAM/swap you would need worst-case.

这是漏洞解释http://www.redhat.com/advice/tips/meminfo.html

所以你的记忆力没有问题,一切都好,读数也正常。