内存溢出(oom)和内存泄露(leak)

早过忘川 提交于 2020-03-12 02:02:39

     在系统内存严重不足时,可能触发OOM killer。

     1.OOM kiler

        a. 问:oom_score的默认值是多少?    

            答:0,oom_score=0时禁止内核杀死进程。

        b. 问:oom_score如何设置?

            答:两个方式,手动设置或通过oom_adj计算。

                   计算:oom_score=2^n, n=oom_adj, oom_adj取值范围为15~-16。

       

     2.四种内存泄露类型

          a. 常发性内存泄露:内存泄露代码会被多次执行,每次执行都会泄露一部分内存;

          b. 偶发性内存泄露:只有在特殊条件下才会发生的泄露,正常情况不容易测试到,在特殊环境下,偶发性也会变成常发性;

          c. 一次性内存泄露:发生内存泄露的代码只会被执行一次,例如构造函数中的代码;

          d. 隐式内存泄露:运行中分配内存,结束时释放内存,例如函数内。严格说这里并没有发生内存泄露,因为程序最终释放了所申请的内存。但是对于一个服务器程序,需要长时间运行,不及时释放内存也可能导致最终耗尽系统的所有内存; 


     参考文档:

    《Linux内存溢出(oom)和内存泄露(leak)》  http://www.it165.net/os/html/201405/8168.html  

    《Linux内核panic》http://blog.csdn.net/ylyuanlu/article/details/9115159


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!