在linux系统中查看内存总量是日常运维和开发过程中非常常见的操作,不同的查看方式输出的内容格式不同,需要掌握对应的解读方法才能准确得到内存的GB数值。

使用free命令查看内存
free是linux系统中最常用的查看内存使用情况的命令,默认输出的单位是KB,我们可以通过添加参数调整输出格式。
执行以下命令可以查看内存信息:
# 以人类可读的格式输出内存信息,自动转换为G、M等单位 free -h
命令输出结果通常包含以下几列:
- total:内存的总量,也就是我们需要的内存多少g的数值
- used:已经使用的内存量
- free:完全空闲的内存量
- shared:多个进程共享的内存量
- buff/cache:被缓冲和缓存占用的内存量
- available:系统可供新进程使用的内存量
如果执行free -h后total列显示7.8G,就说明系统总内存约为8G。
查看/proc/meminfo文件
linux系统的/proc目录下存放了很多系统运行时的信息文件,其中meminfo文件就包含了内存相关的详细信息,我们可以通过读取这个文件获取内存总量。
执行以下命令查看meminfo中的内存信息:
# 查看meminfo文件中内存总量相关的行 grep MemTotal /proc/meminfo
输出结果类似MemTotal: 8174568 kB,这里的单位是KB,我们需要将其转换为GB。转换公式为:1GB = 1024MB = 1024*1024KB,所以计算方式为8174568 / 1024 / 1024 ≈ 7.8GB,也就是约8G内存。
使用top命令查看内存
top命令可以实时查看系统的进程和资源使用情况,同时也能看到内存的总量信息。
执行top命令后,在输出内容的第一部分就能看到内存相关的信息:
top
输出内容中类似MiB Mem : 7988.0 total, 1234.0 free, 2345.0 used, 4409.0 buff/cache的行,其中total就是内存总量,这里单位是MiB,1GiB=1024MiB,所以7988.0 / 1024 ≈ 7.8GiB,也就是约8G内存。
不同查看方式的适用场景
| 查看方式 | 适用场景 | 优势 |
|---|---|---|
| free命令 | 快速查看内存总量和使用情况 | 输出简洁,支持人类可读格式,操作简单 |
| /proc/meminfo文件 | 需要获取详细的内存参数 | 信息最全面,包含各种内存相关的细分指标 |
| top命令 | 需要同时查看进程和内存情况 | 实时刷新,能同时看到进程占用内存的情况 |
注意事项
需要注意linux系统中内存单位的不同表述,有些命令输出的是GB(10进制,1GB=1000MB),有些是GiB(2进制,1GiB=1024MiB),实际硬件标注的内存通常是10进制,所以系统识别到的内存会比硬件标注的略小,属于正常现象。
如果查看内存时发现总量和预期不符,可以检查是否有部分内存被硬件保留,或者是否系统识别到了所有内存插槽的内存。