先声明,本文涉及到的知识是之前搜集到的,现在整理出来分享大家,虽然打上原创的tag,但还是向原创致敬!如果涉及到侵权的问题,请联系我,我会及时更改!


1、通过定期采集/proc文件系统内的meminfo文件来获取当前内存使用情况:

proc文件系统是一个伪文件系统,它只存在内存当中,而不占用外存空间。它以文件系统的方式为访问系统内核数据的操作提供接口。用户和应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc文件时,proc文件系统是动态从系统内核读出所需信息并提交的采集流程图。


使用gedit /proc/meminfo 命令打开meminfo文件,需要使用的指标有:MemTotal ,MemFree,Buffers,Cached
MemTotal:总内存大小
MemFree: 空闲内存大小
Buffers和Cached:磁盘缓存的大小


2、下面分别从操作系统角度和应用程序角度来区别Buffers和Cached
对操作系统来说,Buffers和Cached是已经被使用的
MemFree=total-used
对应用程序来说
MemFree=buffers+cached+free。


所以本着监控应用对物理内存使用情况的目的采取如下计算方法:
内存使用率(MEMUsedPerc)=100*(MemTotal-MemFree-Buffers-Cached)/MemTotal
Logo

更多推荐