商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 系统应用 > 如何查看Linux系统的内存大小

如何查看Linux系统的内存大小

  发布于2026-08-16 阅读(0)

扫一扫,手机访问

MemTotal 是物理内存总容量的唯一可信基准,单位 KB,可从 /proc/meminfo 直接读取;free -h 显示的是内核实际管理的可用总量;dmidecode 反映硬件标称容量,但需 sudo 且不保证内核启用。

如何查看Linux系统的内存大小

直接看 MemTotal 字段,它就是物理内存总容量,单位是 KB,其他方式都绕弯子。

free -h 快速确认总内存

这是最常用、最直观的方式:

  • free -h 输出第一行 Mem: 后的 total 值,就是当前可用物理内存总量(已扣除内核保留等不可用部分)
  • 注意:free 显示的是内核实际识别并可管理的内存,和 BIOS/UEFI 报告的插槽容量可能略有差异(比如被显卡或硬件保留)
  • 如果看到 total 明显小于你插的内存条标称值(如插了 32GB 却只显示 31.2Gi),大概率是被 GPU 或 iGPU 预留了一部分——这时得查 dmesg | grep -i memory 看启动日志里的保留记录

/proc/meminfo 读取原始数值

所有内存工具底层都依赖这个文件,它最权威:

  • 运行 grep MemTotal /proc/meminfo,输出类似 MemTotal: 32857904 kB
  • 这个数字是内核启动时探测到的物理内存上限,未经任何缓存或预留逻辑“美化”
  • 想转成 GB?简单除以 1024²:awk '/MemTotal/ {printf "%.1f GBn", $2/1024/1024}' /proc/meminfo
  • 别信 cat /proc/meminfo 全量输出里排在后面的字段(比如 MemA vailable),它们跟“总大小”无关

dmidecode 查物理插槽真实容量

当你要确认硬件是否插到位、有没有被屏蔽,就得绕过内核,直读 SMBIOS:

  • 执行 sudo dmidecode -t memory | grep -E "Size|Speed|Type"
  • 每条 Size: 行代表一个内存插槽的实际容量(Size: No Module Present 表示空槽)
  • 注意:普通用户无权限运行 dmidecode,必须加 sudo;某些云主机或容器环境根本不可用(因为没访问固件权限)
  • 该命令显示的是 DIMM 标签上的标称值,不反映内核是否真正启用——比如插了 ECC 内存但 BIOS 关闭了 ECC,dmidecode 仍会显示容量,而 /proc/meminfo 可能略少

有个细节特别容易被忽视:内存总量从来不是“机器里插了多少”,而是“内核最终识别了多少”。/proc/meminfo 里的 MemTotal 才是唯一靠谱的判断基准,其他结果,本质上都只是基于它的展示或推导。要是 free -hdmidecode 的数值对不上,优先看前者;如果连 MemTotal 都明显偏小,比如远低于硬件标称规格,那基本可以确定,问题就出在 BIOS 设置、内核启动参数(例如 mem= 限制)或者硬件兼容性上。

本文转载于:https://www.php.cn/faq/2993130.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注