有许多办法能够得到Linux系统上所安装内存的信息,并查看其中有多少内存正在使用中。有的命令会展现大量的细节,而有的命令则提供了简洁(但不必定容易理解)的结果。在这篇文章中将介绍一些更有用的工具,帮助你检查内存及其使用状况。 |
不过,在进一步讨论以前,咱们要先回顾一些基本知识。物理内存和虚拟内存是不同的,后者包括配置为交换区的磁盘空间。交换区可能包括为此用途预留的分区,或者那些为添加到新的交换区而建立的文件——当建立一个新的分区并不实际时。有些Linux命令提供了这两方面的信息。linux
交换区经过提供磁盘空间来扩展内存,这些磁盘空间可用于存放那些物理内存已满时移动到磁盘的非活动页。工具
在内存管理中起到做用的一个文件是/proc/kcore,这个文件看起来像一个普通的(虽然很是大)文件,可是它根本不占用磁盘空间。就像/proc中的全部文件同样,它是一个虚拟文件。3d
有趣的是,下面查询的两个系统没有安装相同数量的内存,可是/proc/kcore
的大小在这两个系统上是相同的。第一个系统安装了4 GB内存,第二个有6 GB。code
该文件的大小表示可用虚拟内存的数量(可能加上4K),这个解释可能站不住脚。这个数字代表这些系统上的虚拟内存是128 TB!这个数字表明64位系统可以寻址的内存数量,而不是系统上的可用内存数量。经过如下方式进行计算,再加上4 K,就能够推导出这个数字:
blog
另外一个更人性化的检查内存的命令是free
命令,它能够提供一个易于理解的内存报告。内存
使用-g
选项,free
以gb为单位报告这些值。get
使用-t
选项,free
显示的值与没有选项时显示的值相同(不要混淆-t
和tb
),可是在输出的底部添加了一行。内存管理
固然,你也能够同时使用这两个选项。table
若是你但愿获得“这个系统上安装了多少RAM”的答案,那么你可能会对这个报告感到失望,这与上面示例中显示的具备6GB RAM的系统相同。并不表示这个报告是错的,而是系统对它所拥有的内存的见解。free命令还提供了每X秒(在下面的示例中为10秒)更新一次结果的选项。扩展
使用-l, free命令能够提供高内存使用量和低内存使用量。
查看内存的另外一个办法是/proc/meminfo文件。与/proc/kcore
相似,这是一个虚拟文件,它提供了一个有用的报告,显示安装了多少内存、空闲内存和可用内存。显然,空闲和可用并非一个意思。MemFree
表明未使用的RAM
,MemAvailable
是对启动新应用程序可用内存的估计。
若是只想查看总内存,可使用如下命令之一:
DirectMap
条目将内存上的信息分解成类别。
DirectMap4k
表示映射到标准4k页面的内存量,而DirectMap2M表示映射到2MB页面的内存量。
getconf
命令将提供的信息每每比较多。
使用以下所示的命令能够将输出缩减为特定的内容,你可以得到与上面的一些命令相同的信息。
该命令经过将输出的第一行和最后一行中的值相乘来计算内存,以下所示:
独立地进行计算,咱们就能够看到这个值是如何推导出来的。
另外一个输出很是容易理解的命令是top
,top
输出前5行中的数字显示了内存的使用状况。
最后这个命令将以简洁的方式回答“这个系统上安装了多少RAM ?
根据您但愿看到的详细信息的多少,Linux系统提供了许多选项,能够查看系统上安装了多少内存,以及使用了多少内存和有多少可用内存。