Linux 查看内存大小和使用情况的方法汇总

Linux 查看内存大小和使用情况的方法汇总 内存是影响电脑性能的重要硬件之一所以在日常使用电脑的过程中需要经常关注它的使用状况。Linux 系统有多种方式可以查看内存大小并跟踪到内存的使用情况本文总结了一些比较常见的方法。开始之前说明一下本文所说的方法仅涉及 Linux 系统自带或默认安装的工具对于需要单独安装的第三方内存信息查看软件或命令不在本文介绍的范围之内。比如dmidecode和hwinfo。使用系统监视器虽然说 Linux 系统用命令会比较快捷但如果使用的是桌面版 Linux这会是一个更加直观的选择。以我常用的 Gnome 桌面环境为例它提供了一个名为「系统监视器(System Monitor)」的小工具。直接运行就能以可视化的图表来观察到内存的使用情况。在不同的 Linux 桌面环境下软件名称可能会不一样。比如在 KDE它可能叫 KSysGuard。但一定会有一个类似功能的软件。使用 free 命令对于习惯用终端或是在 Linux 服务器环境上就只能选择使用命令来查看内存使用情况。首先要推荐使用的就是free命令建议加上-h选项它会让命令的输出结果更方便查看。在我的电脑上命令输出如下❯ free -h total used free shared buff/cache available Mem: 31Gi 3.4Gi 24Gi 1.1Gi 2.9Gi 26Gi Swap: 0B 0B 0B这是一个简单的表格结构。第一行为表头第二行为物理内存信息第三行为虚拟交换内存。上面输出的信息可以看到我当前的这台电脑内存有 31GB(total)已经用了 3.4GB(used)剩余可用大小为 26GB(available)。使用 top 命令top是另外一个可以用来查看内存使用情况的命令。直接输入top命令后按回车键就能看到如下界面在第 4 行即Mib Mem开头的这行为内存使用信息可以看到和free命令类似的输出结果单位为 MB。不过有所不同的是top命令每 3 秒就会自动刷新一次数据而且在下面还有一个列表其中的%MEM这一列提供了运行中程序所占用的内存大小。数字是百分比值和总内存大小total进行换算可以得到程序大致使用的内存。使用 dmidecode 命令dmidecode是一个读取 DMI(Desktop Management Interface) 的命令可以通过获取硬件信息的方式来查看内存信息dmidecode -t memory使用 /proc/meminfo 文件在 Linux 系统上一切皆文件。内存信息也能通过文件方式来查看。存放内存信息的文件位置为/proc/meminfo所以通过使用查看文件的命令来读取它的内容也能实现获取内存信息的功能。cat /proc/meminfo命令输出结果很长这里仅列举开头几行作为示例MemTotal: 32737172 kB MemFree: 25040664 kB MemAvailable: 26554608 kB Buffers: 164280 kB Cached: 3064824 kB SwapCached: 0 kB Active: 907548 kB Inactive: 4452772 kB Active(anon): 3672 kB Inactive(anon): 3528512 kB从名字就可以看出MemTotal是内存的总大小MemFree是未被使用的大小MemAvailable是可用大小。使用 vmstat 命令使用vmstat命令能得到的内存信息和使用free命令差不多。而且需要搭配grep命令筛选一下结果否则会有其他信息干扰。建议使用的方式如下vmstat -s|grep memory该命令会输出以下样式的结果❯ vmstat -s|grep memory 32737172 K total memory 4255132 K used memory 935848 K active memory 4317508 K inactive memory 25135556 K free memory 169456 K buffer memory使用 lsmem 命令使用lsmem命令可以查看内存的可用地址范围区块大小以及在线状态。这个命令提供的数据过于底层对大多数人来说难得用上。命令默认的输出结果如下❯ lsmem RANGE SIZE STATE REMOVABLE BLOCK 0x0000000000000000-0x000000007fffffff 2G online yes 0-15 0x0000000100000000-0x000000087fffffff 30G online yes 32-271 Memory block size: 128M Total online memory: 32G Total offline memory: 0B总结以日常观察内存使用情况的用途来说上面列出的方法只需要选择一到两种方法即可。如果使用的是桌面端环境可以优先考虑使用系统监视器它能更直观的了解使用的内存大小以及一段时间里内存使用波动而且它也提供了和top命令一样的进程管理功能用起来会很方便。free命令和top命令很有掌握的必要因为对于 Linux 服务器环境而言默认只能选择它俩。