linux如何看内存
- Linux
- 2025-07-20
- 2725
free、
 top、
 htop、
 vmstat等,也可查看
 /proc/meminfo文件获取详细信息
Linux系统中,有多种方法可以查看内存的使用情况,以下是几种常用的方法:
使用free命令
 
free命令是一个快速查看系统内存使用情况的工具,它提供了总内存、已用内存、空闲内存、缓存和交换分区等信息,默认情况下,free命令的输出单位是KB,但可以通过选项更改为MB或GB等。
基本用法:
free
常用选项:
- -m:以MB为单位显示内存使用情况。
- -g:以GB为单位显示内存使用情况。
- -h:自动选择合适的单位(如M、G)进行显示。
- -t:显示总的内存和交换分区信息。
- -s <间隔秒数>:设置更新间隔时间,持续监控内存使用情况。
- -c <次数>:设置更新的次数,达到次数后停止监控。
示例:
free -m
输出示例:
total used free shared buff/cache available Mem: 7741 5623 1560 12374 56649 44423 Swap: 7935 528 73767
在这个示例中,total表示总内存大小,used表示已用内存,free表示空闲内存,shared表示多个进程共享的内存,buff/cache表示缓冲区和缓存的内存,available表示可用于启动新应用程序的内存大小。
查看/proc/meminfo文件
 
/proc/meminfo是一个虚拟文件,它包含了系统内存的详细信息,这个文件的内容由内核动态更新,提供了关于内存使用情况的详细报告。

基本用法:
cat /proc/meminfo
MemTotal: 65966848 kB MemFree: 889116 kB MemAvailable: 45478012 kB Buffers: 1040 kB Cached: 56090320 kB SwapCached: 251808 kB Active: 43912548 kB Inactive: 17060336 kB ...
在这个文件中,MemTotal表示总内存大小,MemFree表示完全空闲的内存,MemAvailable表示可用于启动新应用程序的内存大小,Buffers表示用于缓冲区的内存,Cached表示用于缓存的内存,SwapCached表示用于交换分区的缓存内存,Active和Inactive分别表示活动和非活动的内存。
使用top命令
 
top命令是一个实时监控系统进程状态的工具,它可以显示每个进程的CPU和内存使用情况,通过top命令,可以查看系统的总内存、已用内存、空闲内存以及各个进程的内存使用情况。
基本用法:
top
top 10:00:00 up 1:00, 2 users, load average: 0.00, 0.00, 0.00 Tasks: 73 total, 1 running, 72 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni, 99.9 id, 0.0 wa, 0.0 hi, 0.1 si, 0.0 st KiB Mem : 65966848 total, 898236 free, 7060244 used, 58008368 buff/cache KiB Swap: 33030140 total, 30908668 free, 2121472 used. 45487072 avail Mem ...
在top命令的输出中,KiB Mem行显示了系统的总内存、已用内存、空闲内存和缓冲区/缓存的内存。KiB Swap行显示了交换分区的总大小、已用大小和空闲大小。top命令还会列出各个进程的内存使用情况,包括进程ID、用户、优先级、虚拟内存大小、常驻内存大小、共享内存大小等。
使用htop命令
 
htop命令是top命令的一个增强版,它提供了更友好的用户界面和更多的功能,与top命令相比,htop命令支持鼠标操作、垂直和水平滚动、进程排序和过滤等。

安装htop:
sudo apt install htop
基本用法:
htop
htop命令的输出与top命令类似,但它提供了更多的可视化元素和交互功能,顶部区域显示了系统的总内存、已用内存、空闲内存和交换分区的使用情况,下面的列表区域显示了各个进程的详细信息,包括进程ID、用户、CPU使用率、内存使用率等,用户可以通过上下箭头键选择进程,通过F9键杀死进程,通过F5键切换排序方式等。
使用vmstat命令
 
vmstat命令是一个报告虚拟内存统计信息的工具,它可以显示系统的内存、交换分区、IO、CPU等的使用情况。vmstat命令的输出包括进程、内存、分页、块IO、捕获和CPU活动等信息。
基本用法:
vmstat
procs -----------memory------------swap------io----system-------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 898236 1040 56090320 0 0 0 0 1 1 0 0 99 0 0
在vmstat命令的输出中,procs行显示了等待运行的进程数和不可中断睡眠的进程数。memory行显示了使用的虚拟内存大小、空闲内存大小、缓冲区大小和缓存大小。swap行显示了从磁盘换入的内存和交换到磁盘的内存。io行显示了从块设备接收到的块和发送到块设备的块。system行显示了每秒中断次数和上下文切换次数。cpu行显示了CPU的使用情况,包括用户时间、系统时间、空闲时间、等待IO时间和从虚拟机窃取的时间。

归纳对比表格
| 命令 | 功能描述 | 适用场景 | |
|---|---|---|---|
| free | 显示系统内存状态,包括物理内存、虚拟内存、共享内存和系统缓存的使用情况 | 总内存、已用内存、空闲内存、共享内存、缓冲区、缓存、可用内存等 | 快速查看内存概况 | 
| /proc/meminfo | 提供系统内存的详细信息,包括总内存、空闲内存、活动/非活动内存等 | MemTotal、MemFree、MemAvailable、Buffers、Cached、SwapTotal等 | 需要详细了解内存构成时 | 
| top | 实时监控系统进程状态,包括CPU和内存使用情况 | 系统总内存、已用内存、空闲内存、缓冲区/缓存,以及各进程的内存使用情况 | 实时监控进程内存使用 | 
| htop | top命令的增强版,提供更友好的用户界面和更多功能 | 类似 top,但增加了可视化元素和交互功能 | 需要更直观地监控和管理系统进程时 | 
| vmstat | 报告虚拟内存统计信息,包括内存、交换分区、IO、CPU等的使用情况 | 进程数、内存使用、交换分区、IO块、系统中断、CPU使用等 | 需要全面了解系统资源使用情况时 | 
相关问答FAQs
如何查看Linux系统的总内存大小?
答:可以使用free -m命令,输出列表中的total项值即为查询的总内存数,单位是MB,或者执行cat /proc/meminfo命令,输出列表中的MemTotal项值也是查询的总内存大小,单位是kB。
free命令中的available字段是什么意思?
答:available字段表示可用于启动新应用程序且无需交换的内存大小,它考虑了缓冲区和缓存的内存,因此比单纯的free字段更准确地反映了系统当前可用的内存资源
 
  
			 
			 
			