在系统内存严重不足时,可能触发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
来源:oschina
链接:https://my.oschina.net/u/167206/blog/618078