我听说在 OpenVZ 中,free -m
无法得到正确的结果。那么,如何得到它呢?这是我的结果cat /proc/user_beancounters
“...我使用了多少内存?要检查什么值?
Version: 2.5
uid resource held maxheld barrier limit failcnt
104040: kmemsize 36415334 54527711 54525952 54525952 10574152
lockedpages 0 1024 1024 1024 279
privvmpages 422390 1048916 1048576 1048576 3697
shmpages 702 2580 102400 102400 2
dummy 0 0 0 0 0
numproc 75 501 640 640 0
physpages 205958 774590 0 9223372036854775807 0
vmguarpages 0 0 524288 9223372036854775807 0
oomguarpages 208711 774590 104857 9223372036854775807 0
numtcpsock 28 761 1024 1024 0
numflock 5 43 2048 2048 0
numpty 1 3 64 64 0
numsiginfo 0 75 1024 1024 0
tcpsndbuf 670560 6205568 5368709 10737418 52907126
tcprcvbuf 458752 9612896 5368709 10737418 263113
othersockbuf 34920 5363776 5368709 10737418 2211269
dgramrcvbuf 0 25416 1342177 2684354 0
numothersock 26 181 1024 1024 0
dcachesize 524242 1210651 8053063 12582912 0
numfile 1915 8304 32768 32768 0
dummy 0 0 0 0 0
dummy 0 0 0 0 0
dummy 0 0 0 0 0
numiptent 272 284 1536 1536 0
附言:我计划迁移到只有 1GB RAM 的 XEN 服务器。目前我的 OpenVZ 服务器有 2GB RAM,我们使用了其中的 1.5GB!
答案1
http://wiki.openvz.org/Physpages#physpages:
容器中进程使用的 RAM 页总数。
对于由多个不同容器(例如共享库的映射)使用的内存页面,每个容器只占用页面的一小部分。所有容器的 phypages 使用量总和对应于系统内所有容器使用的页面总数。
因为它是页面(如果您使用的是 x86_{32,64},则可能是 4KiB),在峰值时您的 VE 消耗了 ~ 3 GiB 而当前是 ~ 800 MiB。