在 Linux 要检视系内存, 可以用几种不同的方法, 有些指令会提供完整的内存资讯, 有些则会提供简单清晰的结果。以下是检视 Linux 内存的方法。
free 指令
最简单的方法是用 free 指令, 它会显示简单直接的内存资讯:
|
1 2 3 4 |
$ free total used free shared buff/cache available Mem: 1015404 167352 76552 51084 771500 620520 Swap: 524284 35584 488700 |
加上 -g 或 -m 参数, 可以将显示的单位改为 GB 或 MB:
|
1 2 3 4 |
$ free -g total used free shared buff/cache available Mem: 0 0 0 0 0 0 Swap: 0 0 0 |
或
|
1 2 3 4 |
$ free -m total used free shared buff/cache available Mem: 991 163 74 49 753 606 Swap: 511 34 477 |
如果要持续监测 free 指令的输出, 除了使用 watch 指令外, free 指令内建的 -s 参数也可以持续监测 free 的输出, 例如想每 5 秒更新一次 free 指令, 可以这样:
|
1 2 3 4 |
$ free -s 5 total used free shared buff/cache available Mem: 991 163 74 49 753 606 Swap: 511 34 477 |
要停止上面 free 指令执行, 可以按 “Ctrl + c” 退出。
/proc/meminfo
除了使用 free 指令外, 另一个常用的方法是检视 /proc/meminfo 档案, /proc/meminfo 是一个系统产生的虚拟档案, 里面有系统安装了的内存资讯。/proc/meminfo 档案的资讯相当详尽, 如果只要检视系统的内存及可用内存, 只要检视 /proc/meminfo 开头的 3 行即可:
|
1 2 3 4 |
$ head -3 /proc/meminfo MemTotal: 1015404 kB MemFree: 74152 kB MemAvailable: 620612 kB |
top 指令
执行 top 指令后, 第四行的结果是内存资讯:
|
1 2 3 4 5 |
$ top top - 10:00:43 up 11 days, 8:40, 1 user, load average: 0.05, 0.03, 0.05 Tasks: 86 total, 1 running, 85 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 1015404 total, 70756 free, 168048 used, 776600 buff/cache |
dmidecode
如果有 root 权限, 可使用 dmidecode 指令检查, 使用以下指令, 可以得出更加易读的结果:
$ sudo dmidecode -t 17 | grep “Size.*MB” | awk ‘{s+=$2} END {print s / 1024 “GB”}’
1GB
1GB