当我在我的Red Hat 7.2机器上使用“top”命令时,它告诉我4.0个内存中有3.9个正在被使用,而且大约有135个空闲空间。
但是,当我使用“ps”命令列出所有进程及其内存使用情况时,列表最多只能添加大约650meg。
这是预期的行为,还是有什么事情应该引起关注? 我读过Linux将使用可用RAM来caching磁盘上经常使用的文件,可能会导致“缺less”RAM利用率?
谢谢!
IVR复仇者
你的猜测很可能是正确的。
top给出的“空闲内存”编号不包括用于文件系统caching或缓冲区的内容。 分配给文件系统caching的内存是免费的,如果一个进程需要一些内存,它可以很容易地被使用,但顶部不会显示这个。
free -m
会让你更好地了解你的进程在“ – / + buffers / cache”行中实际使用了多less内存(以MB为单位)。
当然,它仍然不可能完全等于你基于ps输出的计算,因为在Linux中计算内存的使用是非常棘手的,特别是在共享内存周围。
在下面的例子中,作为空闲内存的视图,1287MB比31MB更为准确。
$ free -m total used free shared buffers cached Mem: 2002 1970 31 0 48 1207 -/+ buffers/cache: 714 1287 Swap: 1027 3 1023
顶部往往有过度报告共享内存的问题; 这个现象的一个完美例子是Java应用服务器或者apache。