Исчерпание оперативной памяти (OOM, Out of Memory)
Out of Memory - состояние, при котором операционная система или программа не могут получить дополнительную оперативную память из-за полного исчерпания свободной памяти.
Данное состояние возникает тогда, когда вся память - и физическая оперативная память, и память в файле подкачки (swap) - полностью занята ядром и программами, и неиспользуемой памяти больше не осталось.
В большинстве случаев исчерпание оперативной памяти приводит к невозможности продолжения работы программы, запросившей дополнительную память, или к аварийному завершению других программ (OOM killer), что способно нарушить стабильность работы системы и целостность обрабатываемых данных. Нередко исчерпание памяти приводит к полному сбою в работе сервера и требует аварийной перезагрузки.
Основные причины исчерпания оперативной памяти:
- недостаточное количество физической оперативной памяти
- высокая нагрузка (постоянная или пиковая)
- настройки системы и серверных программ, не подходящие характеру нагрузки
- настройки системы и серверных программ, не соответствующие физическим параметрам сервера
- утечки памяти в программах
Меры борьбы с исчерпанием памяти:
- тонкая настройка компоненов системы
- увеличение объема физической памяти
- установка специализированного программного обеспечения (например, акселератор для веб-сервера)
- отключение неиспользуемых компонентов системы
- оптимизация серверных программ (например, скриптов веб-сайта) для экономного потребление памяти
- увеличение объема swap-файла (но есть отрицательное последствие - приводит к серьезному ухудшению производительности)
- снижение нагрузки (числа обращений) на сервер, вынесение каких-либо ресурсов на другие серверы
Справочник, Oom, Linux