要查看Linux服务器下的内存使用情况,可以使用命令free -m. 注意,该命令仅在Linux下有效,在FreeBSD中没有这样的命令. 命令如下:
已使用: 已使用的内存量
free: 可用内存数量
shared: 多个进程共享的内存总量
-buffers / cache: 已使用的内存量,即used-buffers-cached
+ buffers / cache : (可用)内存量,即free + buffers + cached
结论:
计算可用内存的公式为:
可用内存=空闲+缓冲区+缓存,即215MB + 11MB + 57MB = 253MB
使用Linux内存,而不用于查看. 当我与一个朋友讨论Linux的用法时,他问我为什么Linux使用这么多内存. 他的机器上的1GB RAM仅232MB可用,而Windows XP仅使用不到200MB. 这实际上与Linux的free命令的出现混淆了,Linux的内存使用非常特别. 为了说明这一点,下面的free命令显示了当前的内存使用情况,-m表示以M字节显示内容,让我们看一下.
Mem行的第一部分有以下参数.
总计: 总内存,即378MB
used: 已使用的内存量,即769MB
free: 可用内存量,即232MB
共享: 目前已弃用,始终为0
buffers Buffer: 缓冲内存的数量,即62MB
cached Page: 已缓存的内存数量,即421MB
其中,总内存与已用内存数量和可用内存数量之间的关系为:
总(1002M)=已使用(769M)+免费(232M)
第二部分(-/ + buffers / cache)中的参数如下.
(-buffers / cache): 已使用的内存数量,为286MB(是指Mem行第一部分中的used-buffers-cached).
(+ buffers / cache): 可用内存数,为715MB(指Mem行第一部分中的free + buffers + cached).
可以看出,-buffers / cache反映了程序实际使用的内存,而+ buffers / cache反映了可以被盗用的内存总量.
第三部分涉及交换分区. 每个人都应该理解,所以在这里我不再谈论.
也许人们还是不太了解上面的解释. 例如: 第一部分(Mem)与第二部分的结果(-/ + buffers / cache)相关. 为什么使用和免费如此奇怪?实际上,我们可以从两个方面进行分析. 对于操作系统,这两个参数是Mem参数,使用了buffers / cached,因此认为free只有232MB;对于应用程序,+ buffers / cached等效于可用内存,因为buffer / cached可以提高程序的执行性能,当程序使用内存时,将很快使用buffer / cached. 因此,从应用程序的角度来看,(-/ + buffers / cache)的free和used应该是主要的,也就是说,我们主要看一下与之相关的free和used. 另外,我将告诉您一些常识. 为了提高磁盘和内存访问的效率,Linux作了许多精心的设计. 除了缓存dentry(对于VFS,加速文件路径名到inode的转换)之外,还有两种主要的Cache方法: Buffer Cache和Page Cache. 前者用于读取和写入磁盘块,而后者用于读取和写入文件索引节点. 这些缓存可以有效地缩短I / O系统调用(例如读取,写入,getdents)的时间.
在Linux中,使用内存而不是查看内存. 在Windows中,无论您有多少实际物理内存,即使有很大一部分内存,它也会使用硬盘交换文件来读取. 这就是Windows通常提示虚拟空间不足的原因. 可以想象硬盘比内存快,所以当我们观察Linux的内存使用情况时,只要我们没有找到带有swap的交换空间,就不必担心内存太少. 如果您经常看到交换经常被使用,那么您必须考虑添加物理内存. 这也是查看Linux服务器上的内存是否足够的标准.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shoujiruanjian/article-300509-1.html