RHEL5的特征

在RHEL5中运行OOM Killer时要比在上游内核中更加慎重。OOM Killer会计算调用的次数,仅在一定时间段内超出调用一定次数的情况下运行。

1.OOM Killer从上次调出到下一次调出之间超过5秒时,调用次数重新开始计算。这是为了避免仅因为产生突发性的内存负载就终止进程。

2.在计数变成0后的1秒以内调出时,不计入调用的次数。

3.OOM Killer的调用次数不足10次时,实际不会运行。OOM Killer调用10次时才开始认为内存不足。

4.最后OOM Killer运行不到5秒的话,OOM Killer不会再次运行。因此运行频率最高也有5秒一次。这是为了防止不必要地连续终止多个进程。也有等待接收到OOM Killer发出信号的进程终止(释放内存)的意思。

5.OOM Killer一旦运行,调用的次数就重新回到0。

也就是说,只有在OOM Killer在5秒以内调出的状态连续出现10次以上时才会运行。这些限制原本是到Linux 2.6.10为止都有的。因此在基于Linux 2.6.9的RHEL4中也需要实施这些限制。当前的上游内核中已经取消了这些限制。