美文网首页
Linux free 查询可用内存和判断是否有内存泄漏

Linux free 查询可用内存和判断是否有内存泄漏

作者: 平常xin | 来源:发表于2017-12-11 00:17 被阅读276次

    转载请务必保留超链接 :原文链接

    centos7 使用 free -h 查看内存使用情况:

    used 表示 操作系统已经分配出去的内存

    free 表示 还没分配出去的内存

    判断内存是否泄漏的计算方法:

    Centos6计算方法:used - buffers - cached 的值 跟 used 的值作比较

    Cento7计算方法: available - free 的值 跟 buff/cache 的值作比较

    比较两者的差距,如果两者相差很大,说明有很大的可能是内存泄漏.

    下面我们通过案例来分析是否存在内存泄漏的可能:

    一、Centos6下的案例:

    案例1:

    buffers + cached =  0.1  + 10  = 10.1G

    操作系统系统已经分配出去的内存(used):61G

    61-10.1= 51G, 已经分配出去的内存跟实际可用的内存相差51G((1- 10.1 / 61) * 100% = 84%),说明84%的内存没有被使用到,99%的可能存在内存泄漏。

    案例2:

    Buffers + cached = 0.21  + 0.13 = 0.34G

    操作系统系统已经分配出去的内存(used):3.2G

    3.2 - 0.34G = 2.86G, 已经分配出去的内存跟实际可用的内存相差2.86G((1 - 0.34 / 3.2) * 100% = 89%),说明89%的内存没有被用到, 99%的可能存在内存泄漏。

    二、Centos7下的案例:

    案例1:


    已分配出去的,并且可再被重用的内存: available - free = 926(总)- 770(free)=156G

    buff + cache = 161G

    161G跟156G相差不大,  (1 - 156 / 161) * 100% = 3%),说明只有3%的内存没有被用到, 内存泄漏的可能非常低。

    案例2:


    已分配出去的,并且可再被重用的内存: available - free = 17(总)-0.5(free)=16.5G

    Buff + cache = 18G

    16.5G跟18G相差不大, (( 1 - 16.5 / 18) * 100% = 8%),说明只有8%的内存没有被用到,内存泄漏的可能非常低。

    总结:  对于大内存的服务器,php设置为静态分配内存,也占用大部分内存的情况。判断内存泄露的计算方法在centos6和centos7下是不一样的, free工具可以用来监控内存的使用情况和判断是否有内存泄露。

    相关文章

      网友评论

          本文标题:Linux free 查询可用内存和判断是否有内存泄漏

          本文链接:https://www.haomeiwen.com/subject/qvybixtx.html