The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Facebook открыл код для обработки ситуации нехватки памяти в..."
Отправлено opennews, 20-Июл-18 13:04 
Facebook опубликовал (https://code.fb.com/production-engineering/open-sourcing-oom... собственную реализацию обработчика нехватки памяти в системе (OOM, Out Of Memory), работающую в пространстве пользователя. Как и представленный (https://www.opennet.ru/opennews/art.shtml?num=48927) в начале месяца проект earlyoom (https://github.com/rfjakob/earlyoom/), разработка Facebook нацелена на более оперативное и выборочное завершение работы процессов, потребляющих слишком много памяти, на стадии до срабатывания OOM-обработчика  ядра Linux. Код oomd написан на языке C++ и поставляется (https://github.com/facebookincubator/oomd) под лицензией GPLv2. Oomd уже используется в инфраструктуре Facebook и хорошо зарекомендовал себя при промышленных нагрузках (в частности, проект позволил почти полностью избавиться от возникновения на серверах длительных livelock-блокировок (https://en.wikipedia.org/wiki/Deadlock#Livelock)).


Проект oomd предоставляет достаточно гибкие настройки, позволяющие определять процессы, которые не следует завершать при любых условиях (например, sshd) или, наоборот, определить второстепенные процессы, которые можно завершить без особого вреда. В привязке к определённым процессам или для всех процессов можно определять параметры интенсивности роста потребления памяти и пороговые значения, при превышении которых в условиях нехватки памяти допускается принудительное завершение работы процессов. Допускается создание различных групп процессов, к которым могут применяться разные правила.


Поддерживается подключение различных модулей для определения нехватки памяти (oomdetector) и завершения процессов (oomkiller).
В процессе работы для мониторинга за потреблением ресурсов используются cgroup2 и подсистема PSI (Pressure Stall Information), несколько дней назад предложенная (https://lkml.org/lkml/2018/7/12/661) для включения в состав ядра Linux. PSI  разработан в Facebook и позволяет проанализировать информацию о времени ожидания получения различных аппаратных ресурсов для определённых задач или наборов процессов в cgroup.


В контексте OOM подсистема PSI позволяет выявить начало возникновения задержек из-за нехватки ресурсов на стадии когда система ещё не находится в критическом состоянии и не начинает интенсивно урезать кэш и вытеснять данные в раздел подкачки. Кроме оценки нагрузки на систему памяти в PSI также учитывается нагрузка на CPU и ввод/вывод. По сути PSI можно рассматривать как более информативный индикатор перегрузки и механизм для отслеживания изменения нагрузки во времени, более точно отражающий реальную ситуацию по сравнению с метрикой LA (Load Average).

Проведённые синтетические тесты показали, что реализация OOM-обработчика в пространстве пользователя продемонстрировала более высокую эффективность и надёжность, по сравнению со штатным OOM killer ядра Linux. Ниже на графиках приведено сравнение oomd и
OOM killer при тестировании постепенного запроса процессом 2 Гб ОЗУ в течение 120 секунд в условиях нехватки памяти (значения выше 120 следует рассматривать как поведение, приводящее к снижению производительности).

URL: https://code.fb.com/production-engineering/open-sourcing-oom.../
Новость: https://www.opennet.ru/opennews/art.shtml?num=48994

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру