12.10 显示系统RAM的信息

free

现在大多数计算机都有数百MB(megabyte),甚至几GB(gigabyte)的RAM,但仍然可能因为大量的内存使用或虚拟内存交换,而使计算机的运行速度慢下来。要查看系统内存的当前状态,可以使用free命令。

  1. $ free
  2. total used free shared buffers cached
  3. Mem: 1036136 995852 40284 0 80816 332264
  4. -/+ buffers/cache: 582772 453364
  5. Swap: 1012084 495584 516500

在默认情况下,free命令以千字节为单位显示结果,与使用-k选项一样。不过,可以改变这一设置。-b选项以字节为单位显示内存使用大小,而-m选项(可能是最常用的选项)则以兆字节为单位。

  1. $ free -m
  2. total used free shared buffers
  3. cached
  4. Mem: 1011 963 48 0 78 316
  5. -/+ buffers/cache: 569 442
  6. 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系统。