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

本文详细介绍了Linux系统中OOM(Out of Memory)现象及其触发机制OOMkiller,同时深入探讨了四种常见的内存泄露类型:常发性、偶发性、一次性及隐式内存泄露。

     在系统内存严重不足时,可能触发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.youkuaiyun.com/ylyuanlu/article/details/9115159


转载于:https://my.oschina.net/justfairytale/blog/618078

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值