在Linux系统中,准确了解内存容量是系统管理和性能优化的基础,无论是排查内存不足问题,还是规划应用部署,掌握多种查看内存的方法都十分必要,本文将详细介绍通过命令行工具和系统文件查看内存大小的具体操作,帮助用户根据需求灵活选择。

使用free命令查看内存信息
free是Linux中最常用的内存查看工具,它以易读的格式显示系统内存的使用情况,支持多种输出单位。  
基本语法:
free [选项]
常用选项:
- -h:以人类可读格式显示(如1K、234M、2G)
- -m:以MB为单位显示
- -g:以GB为单位显示
- -t:显示内存总和
示例输出(free -h):  
total used free shared buff/cache available Mem: 7.7Gi 2.1Gi 4.2Gi 128Mi 1.4Gi 5.3Gi Swap: 2.0Gi 0B 2.0Gi
关键参数解读:
- total:物理内存总容量
- used:已使用内存(包含内核缓冲和缓存)
- free:完全空闲内存
- available:可用内存(推荐关注此值,表示系统可立即分配给应用的内存,包含可回收的缓存和缓冲区)
查看/proc/meminfo文件
/proc/meminfo是内核提供的内存信息文件,free命令的数据源即来自此文件,直接查看可获取更详细的内存参数。  
操作命令:

cat /proc/meminfo
关键参数示例:
MemTotal: 8053056 kB # 物理内存总容量(单位:KB) MemFree: 4325880 kB # 完全空闲内存 MemAvailable: 5486752 kB # 可用内存(更准确) Buffers: 234512 kB # 内核缓冲区 Cached: 1436232 kB # 页缓存 SwapTotal: 2097152 kB # 交换区总容量 SwapFree: 2097152 kB # 交换区空闲容量
注意:参数值均为KB,需手动换算(如MemTotal/1024/1024即GB)。  
通过top或htop动态监控内存
top和htop是系统资源监控工具,可实时查看内存使用情况,适合动态观察内存变化。  
top命令
top
操作后按M键按内存排序,在KiB Mem行可看到内存总量及使用情况:  
KiB Mem : 8053056 total, 4325880 free, 234512 buffers, 1436232 cached
htop命令(需安装,sudo apt install htop或sudo yum install htop)
htop
界面以彩色条形图直观显示内存使用,total为总容量,used为已用,buff/cache为缓冲和缓存,available为可用内存(部分版本显示为”available”)。  
使用vmstat命令查看内存统计
vmstat主要用于报告虚拟内存统计,通过-s选项可查看内存详细分配情况。  
命令:

vmstat -s
示例输出:
      8053056 K total memory    # 总内存
      4325880 K free memory      # 空闲内存
       234512 K buffers          # 缓冲区
      1436232 K cached           # 缓存
       2097152 K swap cache      # 交换缓存
查看硬件内存详情(物理插槽和单条容量)
若需了解物理内存的硬件信息(如插槽数、单条容量),可使用以下命令(需root权限):
dmidecode
sudo dmidecode --type memory
输出会包含内存设备的数量、容量、速度、插槽位置等详细信息,
Memory Device
        Array Handle: 0x1000
        Error Information Handle: Not Present
        Total Width: 64 bits
        Data Width: 64 bits
        Size: 8192 MB   # 单条内存容量
        Form Factor: DIMM
        Device Locator: DIMM 0   # 插槽位置
lshw(需安装)
sudo lshw -c memory
输出更结构化,可直接查看内存总容量和插槽详情。
常用命令对比总结
| 命令 | 用途 | 关键参数/输出 | 
|---|---|---|
| free -h | 快速查看内存总量及使用情况 | total/used/free/available | 
| cat /proc/meminfo | 查看详细内存参数 | MemTotal/MemAvailable/SwapTotal | 
| top(按M) | 动态监控内存使用 | KiB Mem行显示总量及分配情况 | 
| vmstat -s | 内存统计摘要 | total/free/buffers/cached | 
| dmidecode | 硬件内存详情 | Size(单条容量)/Device Locator(插槽) | 
相关问答FAQs
Q1:为什么free命令显示的已用内存和top/htop不一致?
A:free的used包含内核缓冲(Buffers)和缓存(Cached),而top/htop的默认used可能不包含这两部分(不同版本显示逻辑略有差异),实际应关注available值(free和htop均提供),它表示系统可立即分配给应用的内存,已排除可回收的缓存和缓冲区,更准确反映可用内存。  
Q2:如何查看内存的物理插槽和单条容量信息?
A:使用sudo dmidecode --type memory命令,输出中会包含Size(单条内存容量,如8192 MB)和Device Locator(插槽位置,如DIMM 0);或安装lshw后运行sudo lshw -c memory,可更直观地查看内存硬件详情,包括总容量、插槽数及单条容量。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/23390.html
 
                