Linux

OEL6上未知程序使用的記憶體 - 沒有記憶體和slabcache

  • August 4, 2014

我搜尋了“我的 Linux 記憶體在哪裡?” 問題,但我找不到類似的洩漏場景:

  • OEL 6.3 x86_64 Linux,6GB RAM
  • 在沒有執行我的任何主要組件(2 個 tomcat、MySQL、基於 Grizzly 的 Web 容器)的情況下,系統的某些未知部分佔用了大約 2.3GB 的記憶體
  • 幾乎沒有幾 MB 文件記憶體
  • 幾乎沒有幾 MB 的平板記憶體
  • 即使重新啟動後
  • system 是 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 用於平板:

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

任何有關找出這裡 2 場演出吃什麼的提示都值得讚賞!

許多人錯過的一件事,尤其是在 VMware 上執行 Tomcat 和其他基於 Java 的應用程序時,是該軟體對 VMware 記憶體分配的影響。

所以首先:

  • 您是否有權訪問主機/集群的 vSphere 或 vCenter 管理?
  • 您是否安裝了 VMware 工具?

在以下情況下,我經常在 Linux VM 中看到無法解釋的記憶體問題:

  • 主機級別的極端 RAM 過度使用。
  • 主機/集群上的大量記憶體膨脹。
  • 如果 VM 上存在 RAM 限制。(例如 6GB 分配給 VM,但主機限制為 4GB)
  • 糟糕的資源池/共享設計。

基本上,您需要在主機/集群級別查找爭用。

一個非常糟糕的例子:
vSphere 教育 - 用太多 RAM 配置 VM 的缺點是什麼?

引用自:https://serverfault.com/questions/617209