Ubuntu 14.04服务器 – 内存不足(OOM杀手) – 是什么导致我的内存问题/泄漏?

我试图find为什么我的服务器每隔几周就会出现内存不足的原因,并调用OOM杀手。 这似乎是内存使用情况稳定2周左右,然后逐渐上升2周。 然后有一个大的加息导致了一个OOM电话。

http://i.stack.imgur.com/PNIO5.jpg

加息之前的内存使用情况:

Wed Jun 3 08:50:01 EDT 2015 COMMAND %MEM tor 14.7 mysqld 11.8 spamd child 5.5 apache2 4.6 spamd child 4.5 apache2 4.4 apache2 4.4 apache2 4.2 apache2 4.2 apache2 3.3 Memory Space Details Total Memory space : 1250 MB Used Memory Space : 964 MB Free Memory : 285 MB Swap memory Details Total Swap space : 255 MB Used Swap Space : 81 MB Free Swap : 174 MB 

以下是调用OOM之前的内存使用情况。

 Wed Jun 3 09:10:02 EDT 2015 COMMAND %MEM tor 13.4 mysqld 11.2 spamd child 5.2 apache2 3.8 apache2 3.6 apache2 3.3 apache2 2.6 apache2 2.5 apache2 2.5 spamd child 2.4 Memory Space Details Total Memory space : 1250 MB Used Memory Space : 873 MB Free Memory : 376 MB Swap memory Details Total Swap space : 255 MB Used Swap Space : 178 MB Free Swap : 77 MB 

系统调用OOM:

 1 Time(s): /usr/sbin/spamd invoked oom-killer: gfp_mask=0x201da, order=0, oom_score_adj=0 

过程TOR被杀害。

重新启动后,内存使用量下降,系统运行几周。

 OMMAND %MEM tor 12.0 mysqld 7.8 /usr/sbin/spamd 6.2 spamd child 6.1 spamd child 6.1 apache2 4.4 apache2 2.9 apache2 2.9 apache2 2.5 apache2 2.0 Memory Space Details Total Memory space : 1250 MB Used Memory Space : 659 MB Free Memory : 590 MB Swap memory Details Total Swap space : 255 MB Used Swap Space : 0 MB Free Swap : 255 MB 

内核输出: http : //pastebin.com/rBvbFcyt

记忆跳从哪里来? 为什么内存使用在两周内逐渐增加? 内存泄漏

很难说是什么原因导致的跳跃或者随着所提供的信息的逐渐增加。

提供的快照表明,顶级内存用户实际上performance得相当好 – 在内存紧缩期间,在OOM杀手出现之前,内存占用更低 。 这就暗示了一些其他的进程实际上是造成这种紧缩的原因(也许和某些用户的活动有关系,也许是一些cron的东西,或许是一些暂时的状况突然比平时长得多)。

不幸的是,OOM​​杀手并不够聪明,盲目地杀死了顶级内存用户进程 – 恕我直言,一个相当没有灵感的决定,在具有专用function的服务器上。

需要更详细的监控来揭示造成内存紧缩的过程。 我将从定期的顶层执行开始,将关于所有进程的信息转储到可以稍后检查的文件中。 为什么所有的过程? 因为进程数量突然激增或逐渐增加(即使每个进程占用的内存很小)也可能会解释内存使用情况变化,如您所报告的变化。