如果系统中存在内存泄漏,请定期cat /proc/meminfo
提示提示。
如果是这样,我应该关注哪个度量标准,假设内存模块中存在可疑的内存泄漏:
> cat /proc/meminfo
MemTotal: 16344972 kB
MemFree: 13634064 kB
MemAvailable: 14836172 kB
Buffers: 3656 kB
Cached: 1195708 kB
SwapCached: 0 kB
Active: 891636 kB
Inactive: 1077224 kB
HighTotal: 15597528 kB
HighFree: 13629632 kB
LowTotal: 747444 kB
LowFree: 4432 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 968 kB
Writeback: 0 kB
AnonPages: 861800 kB
Mapped: 280372 kB
Shmem: 644 kB
Slab: 284364 kB
SReclaimable: 159856 kB
SUnreclaim: 124508 kB
PageTables: 24448 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 7669796 kB
Committed_AS: 100056 kB
VmallocTotal: 112216 kB
VmallocUsed: 428 kB
VmallocChunk: 111088 kB
AnonHugePages: 49152 kB
答案 0 :(得分:4)
更好的启动方式是free
命令行工具,它使用相同的文件/proc/meminfo
:
http://man7.org/linux/man-pages/man1/free.1.html
free - 显示系统中可用和已用内存的数量。 free显示系统中可用和已用物理和交换内存的总量,以及内核使用的缓冲区和高速缓存。通过解析/ proc / meminfo
收集信息
free
工具有“used”和“free”内存列,每列有两个值,但事实是在Linux(和Unix,也可能在Windows中)有Page cache机制从RAM中缓存HDD中的数据。
实际上,这只是一个缓存,当你的应用程序要求并使用更多内存时,页面缓存将被部分丢弃(如果缓存的数据未被修改),或刷新到HDD(如果数据被修改)并且OS将给出对你的应用程序的记忆。
在Linux中,页面缓存使用的内存报告为不可用,但在“buffers”/“cache”列中,并且在“used”的第一行中占用
buffers
Memory used by kernel buffers (Buffers in /proc/meminfo)
cache Memory used by the page cache and slabs (Cached and
SReclaimable in /proc/meminfo)
免费输出示例:
$ free -m
total used free shared buffers cached
Mem: 1504 1491 13 0 91 764
-/+ buffers/cache: 635 869
Swap: 2047 6 2041
第一行“免费”列是免费RAM,没有被任何东西使用。第二行(第二个值)是空闲RAM +缓存+缓冲区。
您可以在
了解更多信息