12.10 显示系统RAM的信息
free
现在大多数计算机都有数百MB(megabyte),甚至几GB(gigabyte)的RAM,但仍然可能因为大量的内存使用或虚拟内存交换,而使计算机的运行速度慢下来。要查看系统内存的当前状态,可以使用free
命令。
$ free
total used free shared buffers cached
Mem: 1036136 995852 40284 0 80816 332264
-/+ buffers/cache: 582772 453364
Swap: 1012084 495584 516500
在默认情况下,free
命令以千字节为单位显示结果,与使用-k
选项一样。不过,可以改变这一设置。-b
选项以字节为单位显示内存使用大小,而-m
选项(可能是最常用的选项)则以兆字节为单位。
$ free -m
total used free shared buffers
cached
Mem: 1011 963 48 0 78 316
-/+ buffers/cache: 569 442
Swap: 988 483 504
从free
命令的输出可以看出,这台计算机有1011 MB可用的物理RAM(实际是1024 MB,但free
命令显示为1011 MB,因为内核占用了剩下的13 MB,所以其他用户永远也不能使用这部分内存)。第一行显示有963 MB RAM正在使用中,只剩下48 MB空闲的RAM。交换区(或虚拟内存)差不多有1 GB,已经使用了大约一半(或483 MB)。表面看起来就是这样的。
不过,事情并没有那么简单。重要的是中间标记为-/+ buffers/ cache
的那一行。硬盘驱动器使用缓冲(buffer)和缓存(cache)来加速访问,如果一个程序需要内存,系统就能够快速地为该程序分配内存。对于Linux计算机中正在运行的应用程序而言,现在可以使用的空闲内存有442 MB,缓存空间为569 MB(如果需要的话,可以使用)。除了交换空间,它们也是可以使用的空间。如果Linux的内存管理做得没有那么高效的话,那么它也就什么也不是了。
提示 有关
free
命令和Linux内存管理的更多信息,可以在Gentoo Wiki上找到,网址为http://gentoo-wiki.com/FAQ_Linux_Memory_Management。虽然据称这篇文章针对的是Gentoo(一个独特的Linux分发版),但它仍然适用于所有版本的Linux系统。