TL;DR:free -h 看总量;/proc/meminfo 字段全;lshw 列硬件;dmidecode 读频率,需 root
—
快速查看总内存
直接看 free -h,一行出总容量、已用、可用和交换区。参数 -h 自动转成人类可读单位(GiB/MiB)[1]。
free -h
预期输出里 total 列就是物理内存总和,available 列才是真正还能分配给新进程的余量。
—
查看内存详细信息
/proc/meminfo 是内核导出的原始内存统计,字段最全。前几行里 MemTotal、MemFree、MemAvailable、SwapTotal、SwapFree 是最常用的 [3]。
head -n 20 /proc/meminfo
如果只想抓总容量,用 grep 过滤更轻量:grep -E '^MemTotal:' /proc/meminfo。
—
查看内存频率与类型
dmidecode 读取 SMBIOS 表,能列出每条内存条的类型(DDR4/DDR5)、速率、厂商和序列号。它需要 root 权限,而且只在真实硬件上有完整数据 [4]。
dmidecode --type memory
典型输出会看到 Type: DDR5、Speed: 5600 MHz 这样的字段。若字段显示 Unknown,可能是主板或固件未提供该数据。
局限性:WSL2 不暴露 SMBIOS,dmidecode 会报 No SMBIOS nor DMI entry point found。本命令在真实 Ubuntu/Debian 机器上可验证,WSL 侧仅基于文档核查,尚未实际执行。
—
查看内存硬件映射
lshw 用 sysfs 和 DMI 信息汇总硬件,-short -class memory 只输出内存设备 [5]。
lshw -short -class memory
输出会显示 System memory 及其总大小。配合 -C memory 可以看到更详细属性;在真实硬件上还可能看到 clock: 3200MHz 之类频率字段。
/proc/iomem 列出系统 RAM 的物理地址范围,适合排查内存占用的低阶问题 [2]。
head -n 20 /proc/iomem
—
不同场景选哪条命令
| 场景 | 推荐命令 | 说明 |
|---|---|---|
| 只看总容量 | free -h |
一行搞定 |
| 脚本取字段 | grep MemTotal /proc/meminfo |
适合 awk/sed 处理 |
| 硬件清单 | lshw -short -class memory |
需安装 lshw |
| 内存条详情/频率 | dmidecode --type memory |
需 root + SMBIOS |
| 地址映射 | cat /proc/iomem |
内核视角 |
—
排错速查表
| 现象 | 原因 | 处理 |
|---|---|---|
free 显示 0 可用 |
内存耗尽或被缓存占满 | 先看 buff/cache,通常不是真耗尽 |
dmidecode 报 no SMBIOS |
虚拟机/WSL/容器无 DMI 表 | 改用 lshw 或宿主机命令 |
lshw 无输出 |
未安装 lshw | apt install lshw |
/proc/meminfo 字段被截断 |
手动 head -n 行数太少 |
去掉 head 或调大行数 |
—
局限性
- WSL2 无 SMBIOS,
dmidecode无法返回实际内存条频率和类型,相关结果仅基于官方手册描述,未在 WSL 侧执行验证。 - 部分云服务器或容器会屏蔽
/proc/meminfo部分字段,视虚拟化方案而定。 - 内存频率最终取决于主板和内存条固件设置,Linux 命令只是读取,不能修改频率。
—
附录:实测记录
测试机器:WSL2 Ubuntu-24.04(systemd 启用) 内核:5.15.146.1-microsoft-standard-WSL2 日期:2026-11-02 实测命令及结果:
| 命令 | 结果 |
|---|---|
free -h |
通过,输出 7.6Gi 总内存 |
head -n 20 /proc/meminfo |
通过,字段完整 |
grep -E '^MemTotal:' /proc/meminfo |
通过,7980092 kB |
lshw -short -class memory |
通过,8064MiB System memory |
dmidecode --type memory |
WSL 报错:No SMBIOS,标记为文档核查 |
参考资料
- [1] free(1) – Linux manual page (man7.org)(free)
- [2] proc(5) – Linux manual page (man7.org)(proc)
- [3] proc_meminfo(5) – Linux manual page (man7.org)(proc_meminfo)
- [4] dmidecode(8) — Debian testing man page(dmidecode)
- [5] lshw(1) – Ubuntu noble man page(lshw)
文中主要命令已在 WSL Ubuntu(24.04)实测并核对其在 Debian 系与通用发行版的文档口径。