我收到一些关于虚拟化服务器内存使用情况的相互矛盾的信息.最令人震惊的信息是这样的:
请注意,即使已提交显示12GB,服务器也只分配了4GB的RAM.
另外,如果我运行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
这总计高达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
这对我来说似乎没问题,没有过度记忆的迹象.
服务器相对较快,没有异常的停机/缓慢,我想保持这种方式.异常读数是异常还是更严重?
解决方法
你有足够的记忆力.如果您使用的内存增加到最大数量并且缓冲区和缓存将非常低,您将遇到内存问题,使用SWAP会rize然后您可能会遇到空闲RAM问题.从你的帖子,它的一切都好……
这简单解释了提交的内存是什么:
Committed_AS:估计需要多少RAM才能保证99.99%的内存永远不会有OOM(内存不足).通常内核会过度使用内存.这意味着,假设你做了1GB的malloc,真的没有任何反应.只有当你开始使用那个malloc内存时,你才能按需获得真正的内存,就像你使用它一样.所以你有点抵押贷款,并希望银行不会破产.其他情况可能包括当您映射仅在您写入时共享的文件并且您获得该数据的私有副本时.虽然它通常在进程之间共享. Committed_AS是对最坏情况下需要多少RAM /交换的猜测.
这是孔解释http://www.redhat.com/advice/tips/meminfo.html
所以你没有内存问题,一切都正常,那些读数是正常的.