In a recent post on Facebook, the company’s developer Daniel Xu announced that oOMD is open source under the GPLv2 license. Oomd is the OOM Killer of user-space memory overflow. It was mentioned in a recent article about block I/O delay controllers. When memory is low, the memory overflow killer kills processes whose main job is to protect the kernel, so applications may be affected. In contrast to traditional Linux memory overflow killers, OOMD monitors the entire system and evaluates whether it is under an unrecoverable workload. Oomd will take corrective action in user space before OOM Killer works on the system.

Facebook says its infrastructure has grown to include news feeds, Messenger, Instagram, WhatsApp, Oculus and a host of other products. These products and the systems behind them run on millions of servers spread across multiple geographically distributed data centers. As the infrastructure grows, Facebook machines and networks increasingly span multiple generations, and a side effect of this multigenerational production environment is that a new software release or configuration change can cause the system to run fine on one computer but run into out-of-memory (OOM) issues on another. The traditional Linux memory overflow killer works fine in some cases, but in other cases it starts too late, causing the system to enter live locks for indeterminate periods.

So Facebook developed OOMD, a faster and more reliable solution for the common out-of-memory (OOM) situation that can run in user space instead of kernel space. Facebook designed OOMD with two key features: pre-oom hooks and a custom plug-in system. The pre-oom hook provides visibility into the OOM until the workload is threatened. Because the OOM detection criteria may vary by workload, the plug-in system supports customization of detection and process termination policies.

Some comparisons with the kernel space memory overflow killer







conclusion

Oomd is the new OOM Killer for user-space memory that allows application developers to customize responses when a workload consumes all available system memory. Facebook says its tests show that OOMD is a reliable and effective alternative to the default Linux kernel memory overflow killer. They have developed and deployed OOMD on Facebook and found that it enables their company to reduce the frequency of workloads from build servers to rack switches to shared computing resources.