$ free -m
total used free shared buff/cache available
Mem: 7822 321 324 377 7175 6795
Swap: 4096 0 4095
$ free -h
total used free shared buff/cache available
Mem: 7.6G 322M 324M 377M 7.0G 6.6G
Swap: 4.0G 724K 4.0G
其中, -m 選項是以MB為單位來展示內存使用信息; -h 選項則是以人類(human)可讀的單位來展示。上面的示例中, Mem: 這一行:
total 表示總共有 7822MB 的物理內存(RAM),即7.6G。
used 表示物理內存的使用量,大約是 322M。
free 表示空閒內存;
shared 表示共享內存?;
buff/cache 表示緩存和緩衝內存量; Linux 系統會將很多東西緩存起來以提高性能,這部分內存可以在必要時進行釋放,給其他程序使用。
available 表示可用內存;
輸出結果很容易理解。Swap 這一行表示交換內存,從示例中的數字可以看到,基本上沒使用到交換內存。
2. 查看 /proc/meminfo
另一種方法是讀取 /proc/meminfo 文件。我們知道, /proc 目錄下都是虛擬文件,包含內核以及作業系統相關的動態信息。
$ cat /proc/meminfo
MemTotal: 8010408 kB
MemFree: 323424 kB
MemAvailable: 6956280 kB
Buffers: 719620 kB
Cached: 5817644 kB
SwapCached: 132 kB
Active: 5415824 kB
Inactive: 1369528 kB
Active(anon): 385660 kB
Inactive(anon): 249292 kB
Active(file): 5030164 kB
Inactive(file): 1120236 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 4194304 kB
SwapFree: 4193580 kB
Dirty: 60 kB
Writeback: 0 kB
AnonPages: 247888 kB
Mapped: 61728 kB
Shmem: 386864 kB
Slab: 818320 kB
SReclaimable: 788436 kB
SUnreclaim: 29884 kB
KernelStack: 2848 kB
PageTables: 5780 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 8199508 kB
Committed_AS: 942596 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 22528 kB
VmallocChunk: 34359707388 kB
HardwareCorrupted: 0 kB
AnonHugePages: 88064 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 176000 kB
DirectMap2M: 6115328 kB
DirectMap1G: 4194304 kB重點關注這些數據:
MemTotal, 總內存
MemFree, 空閒內存
MemAvailable, 可用內存
Buffers, 緩衝
Cached, 緩存
SwapTotal, 交換內存
SwapFree, 空閒交換內存
提供的信息和 free 命令看到的差不多。
3. 使用 vmstat 命令
使用 vmstat -s 命令和選項, 可以對內存使用情況進行統計, 類似於 /proc/meminfo。
示例如下:
$ vmstat -s
8010408 K total memory
344016 K used memory
5444384 K active memory
1380052 K inactive memory
283468 K free memory
719668 K buffer memory
6663256 K swap cache
4194304 K total swap
724 K used swap
4193580 K free swap
132859985 non-nice user cpu ticks
29816 nice user cpu ticks
37600986 system cpu ticks
6643195204 idle cpu ticks
2721822 IO-wait cpu ticks
0 IRQ cpu ticks
592418 softirq cpu ticks
0 stolen cpu ticks
13092214 pages paged in
293257816 pages paged out
8 pages swapped in
1365 pages swapped out
3396492150 interrupts
1327657196 CPU context switches
1548248091 boot time
8811556 forks4. 使用 top 命令
最前面的幾行,顯示了內存總量,使用量,以及空閒內存等信息。top 命令一般用於查看進程的CPU和內存使用情況;當然也會報告內存總量,以及內存使用情況,所以可用來監控物理內存的使用情況。
在輸出信息的頂部展示了匯總信息。示例輸出:
top - 15:20:30 up 6:57, 5 users, load average: 0.64, 0.44, 0.33
Tasks: 265 total, 1 running, 263 sleeping, 0 stopped, 1 zombie
%Cpu(s): 7.8 us, 2.4 sy, 0.0 ni, 88.9 id, 0.9 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 8167848 total, 6642360 used, 1525488 free, 1026876 buffers
KiB Swap: 1998844 total, 0 used, 1998844 free, 2138148 cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2986 enlighte 20 0 584m 42m 26m S 14.3 0.5 0:44.27 yakuake
1305 root 20 0 448m 68m 39m S 5.0 0.9 3:33.98 Xorg
7701 enlighte 20 0 424m 17m 10m S 4.0 0.2 0:00.12 kio_thumbnail
各種作業系統提供的參數略有不同,一般來說都可以根據CPU和內存來排序。
例如:
CentOS
top -o %MEM
top -o %CPU
mac
top -o mem
top -o cpu碰到不清楚的,請使用 top -h 查看幫助信息。
重點關注頂部的 KiB Mem 和 KiB Swap 這兩行。表示內存的總量、使用量,以及可用量。
buffer 和 cache 部分,和 free 命令展示的差不多。
5. htop 命令
與 top 命令類似, 但 htop 還展示了其他的各種信息, 而且支持彩色顯示。
頂部的消息顯示了CPU使用率, 以及RAM和交換內存的使用情況。
如果沒安裝,可以使用類似的命令:
yum install htop -y
二、 查看物理內存信息
想要查看物理內存的硬體信息,可以使用 demidecode 命令。
這個命令會輸出物理內存相關的信息。