Написать пост

Facebook открыла набор Linux-компонентов для дата-центров

Аватар Екатерина Никитина

В их числе — файловая система Btrfs, система измерения состояния ресурсов, а также механизм структуризации рабочей нагрузки.

Обложка поста Facebook открыла набор Linux-компонентов для дата-центров

Facebook опубликовала код шести компонентов ядра Linux, призванных решить некоторые проблемы с управлением большими потоками данных. В их числе — файловая система Btrfs, система измерения состояния устройства памяти и ЦП, а также механизм структуризации рабочей нагрузки и распределения ресурсов.

Подробнее об инструментах

  • BPF — гибкий и эффективный механизм исполнения кода в ядре Linux. Он позволяет предусматривать для разного кода разное поведение ядра. Facebook приводит в пример возможность фильтрации сетевых пакетов, а также запуск определённых процессов в песочнице.
  • Btrfs — файловая система, работающая по принципу копирования при записи. Она фокусируется на продвинутой реализации функций, отказоустойчивости, восстановлении и простом администрировании. Система предназначена для управления большими подсистемами хранилищ, поддерживает создание снапшотов и онлайн-дефрагментацию.
  • Netconsd — это «демон» модуля Netconsole для передачи сообщений журнала ядра. Он представляет их в структурированном виде, что облегчает инженерам поиск ошибок и проблем.
  • Cgroup2 — это механизм для группировки и структуризации рабочей нагрузки, а также для контроля объёма системных ресурсов, привязанных к каждой группе. Кроме того, он помогает изолировать рабочую нагрузку, расставлять приоритеты и настраивать распределение ресурсов.
  • PSI (Pressure Stall Information) — система измерения нагрузки на основные ресурсы. Она предоставляет данные об устройствах памяти, ввода-вывода, а также центрального процессора. Эти метрики нагрузки вкупе с другими инструментами, которые работают в ядре или пространстве пользователя, позволяют вовремя зафиксировать нехватку ресурсов.
  • Oomd — это инструмент пространства пользователя для принудительного завершения процесса в случае ошибки «Out of memory». Он учитывает его контекст и приоритет среди других запущенных в системе процессов. Oomd также позволяет настроить автоматическую реакцию системы на ситуации с нехваткой памяти.

Все проекты Facebook с открытым кодом, включая представленные компоненты Linux, можно посмотреть на соответствующем сайте.

В мае 2018 года компания опубликовала библиотеку Katran — это программный балансировщик сетевой нагрузки, в котором одну из ведущих ролей играет описанный выше механизм BPF. Балансировщик работает в сочетании с сетевым стеком Linux и запускается параллельно с другими процессами на сервере без ущерба производительности. Кроме того, библиотека устраняет циклы активного ожидания при отсутствии входящих пакетов.

Следите за новыми постами
Следите за новыми постами по любимым темам
1К открытий1К показов