Linux /proc/meminfo能否指出内存泄漏的一些提示?

Linux /proc/meminfo能否指出内存泄漏的一些提示?,linux,memory-leaks,linux-kernel,Linux,Memory Leaks,Linux Kernel,如果系统中存在内存泄漏,最好定期使用cat/proc/meminfo获取提示 如果是这样,考虑到可疑内存泄漏位于内核模块中,我应该关注哪个指标: > cat /proc/meminfo MemTotal: 16344972 kB MemFree: 13634064 kB MemAvailable: 14836172 kB Buffers: 3656 kB Cached: 1195708 kB SwapCached: 0

如果系统中存在内存泄漏,最好定期使用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
更好的启动方式是免费的命令行工具,它使用相同的文件/proc/meminfo:

空闲-显示系统中可用和已使用的内存量。free显示系统中可用和使用的物理内存和交换内存的总量,以及内核使用的缓冲区和缓存。通过解析/proc/meminfo收集信息

free tool使用和释放了内存列,每个列有两个值,但事实是,在Linux和Unix中,可能在Windows中也存在将HDD中的数据缓存到RAM中的机制

实际上,这只是一个缓存,当您的应用程序请求并使用更多内存时,如果缓存的数据未被修改,页面缓存将被部分丢弃;如果数据被修改,页面缓存将刷新到HDD,操作系统将为您的应用程序提供内存

在Linux中,页缓存使用的内存报告为非空闲内存,而是在缓冲区/缓存列中,并计入已用内存的第一行

   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+缓存+缓冲区

你可以在

自由人- 更好的启动方式是免费的命令行工具,它使用相同的文件/proc/meminfo:

空闲-显示系统中可用和已使用的内存量。free显示系统中可用和使用的物理内存和交换内存的总量,以及内核使用的缓冲区和缓存。通过解析/proc/meminfo收集信息

free tool使用和释放了内存列,每个列有两个值,但事实是,在Linux和Unix中,可能在Windows中也存在将HDD中的数据缓存到RAM中的机制

实际上,这只是一个缓存,当您的应用程序请求并使用更多内存时,如果缓存的数据未被修改,页面缓存将被部分丢弃;如果数据被修改,页面缓存将刷新到HDD,操作系统将为您的应用程序提供内存

在Linux中,页缓存使用的内存报告为非空闲内存,而是在缓冲区/缓存列中,并计入已用内存的第一行

   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+缓存+缓冲区

你可以在

自由人-
有几种可用的工具-top、iotop、iostat、sar、df-h可以让您了解发生了什么事情。ondmitryro、iotop、df对内核模块中的泄漏检测没有帮助;top和sar仅显示少量信息。artm,您可以从免费工具开始,但您应该知道如何从中解释缓存/缓冲区信息。这是FS:您可以使用KMemLeak。有几种可用的工具-top、iotop、iostat、sar、df-h,它们可以让您了解发生了什么。ondmitryro、iotop、df对内核模块中的泄漏检测没有帮助;top和sar仅显示少量信息。artm,您可以从免费工具开始,但您应该知道如何从中解释缓存/缓冲区信息,因为它是FS:并且您可以使用KMemLeakThank。那么,当内存泄漏发生时,空闲度量会接近零吗?我正在观看/proc/meminfo的MemFree度量,但没有真正看到模式。artm,为什么你认为有泄漏?不要从meminfo开始,从免费工具开始。您也可以尝试使用echo 3>/proc/sys/vm/drop_缓存手动刷新缓存/缓冲区-谢谢。那么,当内存泄漏发生时,空闲度量会接近零吗?我正在观看/proc/meminfo的MemFree度量,但没有真正看到模式。artm,为什么你认为有泄漏?不要从meminfo开始,从免费工具开始。您还可以尝试使用echo 3>/proc/sys/vm/drop\u缓存手动刷新缓存/缓冲区-