Linux
OEL6上未知程序使用的記憶體 - 沒有記憶體和slabcache
我搜尋了“我的 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 的缺點是什麼?