OEL6上未知进程使用的内存 – 没有caching和slabcache

我搜遍了“我的Linux内存在哪里?” 问题,但我找不到类似的泄漏情况:

  • OEL 6.3 x86_64 Linux,配有6GB内存
  • 没有任何我的主要组件运行(2 tomcat,MySQL,基于灰熊的web容器)有大约2.3GB的内存被系统的某个未知部分
  • 几乎没有MB文件caching
  • 几乎没有MB板坯高速caching
  • 即使重新启动后
  • 系统是VMWare上的虚拟主机

这里是RES desc命令的最高输出:

top - 15:57:26 up 3:26, 1 user, load average: 0.27, 0.26, 0.76 Tasks: 192 total, 1 running, 191 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 5993276k total, 2257256k used, 3736020k free, 23772k buffers Swap: 4063224k total, 89644k used, 3973580k free, 98960k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 3236 root 20 0 123m 8384 1520 S 0.0 0.1 0:01.05 Xorg 3373 gdm 20 0 369m 3840 2464 S 0.0 0.1 0:00.69 gdm-simple-gree 3358 gdm 20 0 337m 2916 1940 S 0.0 0.0 0:05.30 gnome-settings- 16380 root 20 0 157m 2708 2192 S 0.0 0.0 0:00.01 su 20174 root 20 0 157m 2704 2192 S 0.0 0.0 0:00.01 su 

免费-m:

 -/+ buffers/cache: 2083 3769 

/ proc / meminfo for slab:

 MemTotal: 5993276 kB MemFree: 3722140 kB Slab: 50724 kB 

任何暗示,找出什么吃这个演出在这里是赞赏!

有很多人错过了,尤其是在VMware上运行Tomcat和其他基于Java的应用程序时,这个软件对VMware内存分配的影响。

所以第一:

  • 您是否有权访问主机/群集的vSphere或vCenter Management?
  • 你有没有安装VMware工具?

在以下情况下,我经常在Linux虚拟机中看到无法解释的内存问题:

  • 主机级别的极端RAM过度使用。
  • 在主机/群集上出现大量内存膨胀。
  • 如果虚拟机上有内存限制。 (例如分配给虚拟机的6GB,但是具有4GB的主机限制)
  • 糟糕的资源池/份额devise。

基本上,您需要在主机/集群级别查找争用。

这是一个非常可怕的例子:
vSphere教育 – 使用*太多内存configuration虚拟机有什么缺点?

尝试

 grep VmPea /proc/*/status|sort -n -k+2 |tail 

如下面链接中的多项式所写

serverfault几乎没有空闲的内存

你没有阅读Serverfault Canonical关于内存使用情况在Linux的权利?

另外你可以通过按H来添加线程(至less对于我在Ubuntu 12.04)

为了更多的debugging:

searchps_mem.py一个Python内存脚本

有了这个,你可以看到哪个进程实际上使用的RAM(私人/共享)不是100%准确,但我想你的“问题足够好”。

有很多其他的方法来实际检测到一个问题,但我build议首先检查它是否被某些东西实际使用,而不仅仅是缓冲,这是完全正常的。