Linux free命令的快速学习

Linux使用过程中,我们经常想了解系统的可用的物理内存及交换内存的总量,以及系统使用的缓存空间,本质上这些信息可以从 /proc/meminfo 中查看到。

$ cat /proc/meminfo
MemTotal: 498612 kB
MemFree: 62776 kB
MemAvailable: 388268 kB
Buffers: 28748 kB
Cached: 270096 kB
SwapCached: 112 kB
Active: 190176 kB
Inactive: 181636 kB
Active(anon): 25928 kB
Inactive(anon): 47100 kB
Active(file): 164248 kB
Inactive(file): 134536 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 1048572 kB
SwapFree: 1046256 kB
Dirty: 0 kB
Writeback: 0 kB
AnonPages: 72908 kB
Mapped: 25168 kB
Shmem: 60 kB
Slab: 49892 kB
SReclaimable: 39428 kB
SUnreclaim: 10464 kB
KernelStack: 1376 kB
PageTables: 2384 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 1297876 kB
Committed_AS: 288036 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
HardwareCorrupted: 0 kB
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
ShmemPmdMapped: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 63476 kB
DirectMap2M: 460800 kB

free命令的效果如下:

输出内容每个字段说明了什么呢?

total – 安装的内存的总量(等同于 /proc/meminfo 中的 MemTotal(即物理内存减去一些预留位和内核的二进制代码大小) 和 SwapTotal)
used – 已使用的内存(计算公式为:used = total – free)
free – 空闲的内存数(等同于 /proc/meminfo 中的 MemFree 和 SwapFree)
shared – 通常是临时文件系统使用的内存,当前已经废弃不用(等同于 /proc/meminfo 中的 Shmem;自内核 2.6.32 版本可用,不可用则显示为 0)
buffers – 内核缓冲区使用的内存(等同于 /proc/meminfo 中的 Buffers)
cached – 页面缓存和 Slab 分配机制使用的内存(等同于 /proc/meminfo 中的 Cached 和 Slab),它不包括SwapCached

(-buffers/cache) used内存数:第一部分Mem行中的 used – buffers – cached
(+buffers/cache) free内存数: 第一部分Mem行中的 free + buffers + cached

-buffers/cache反映的是被程序实实在在吃掉的内存,而+buffers/cache反映的是可以挪用的内存总数。

free命令的各个有用的参数:

free -s 6 : 每隔6秒执行一次free命令

free -h :以可读的方式显示

free -m : -b 以字节显示、-k 以 KB 显示、-m 以 MB 显示、-g 以 GB 显示

free -t :这个命令显示free命令每一列的总和,如图:

[乐于学习,勤于思考] - wrox.org & baidu.com.ru - 本站原创,转载请注明出处!

Tags:,

Add a Comment

Your email address will not be published. Required fields are marked *