Новое решение для борьбы с нехваткой памяти
В условиях роста цен на оперативную память и увеличения требований к её объему, инженеры Meta представили на Linux Plumbers Conference (LPC) в Праге проект Compressed RAM (CRAM). В отличие от программных решений, CRAM использует аппаратное ускорение (hardware-offloaded compression), что позволяет сохранять доступ к сжатым данным на уровне кэш-линий (cacheline) и байтов. Это ключевое архитектурное отличие от существующих аналогов.
Сравнение производительности: CRAM против ZRAM и Zswap
Презентация, проведенная Грегом Прайсом (Gregory Price), показала, что CRAM обеспечивает производительность, близкую к скорости необработанной DRAM. Особенно заметен прирост в операциях записи, где CRAM значительно превосходит как ZRAM, так и Zswap. Ниже приведены результаты сравнения, полученные в ходе тестирования:
| Метрика / Тип доступа | CRAM (Meta) | ZRAM | Zswap | Plain Swap (на диске) |
|---|---|---|---|---|
| Чтение (Read-only data) | Скорость, близкая к нативной DRAM | Ниже (программное сжатие) | Ниже (буферизация + сжатие) | Критически низкая |
| Запись (Memory writes) | Значительно быстрее аналогов | Умеренная скорость | Умеренная скорость | Очень низкая |
| Архитектура | Аппаратное ускорение + доступ к кэш-линиям | Программное решение в ядре | Программный буфер подкачки | Без сжатия |
Статус интеграции в ядро Linux
Большинство необходимых компонентов для поддержки CRAM уже находятся в mainline (основной ветке) ядра Linux. Это означает, что до полноценного внедрения для конечных пользователей осталось пройти финальные этапы интеграции и оптимизации. Для пользователей, которые уже используют ZRAM или Zswap, CRAM обещает существенное улучшение отзывчивости системы при нехватке физической памяти.
Почему это важно
Традиционные методы сжатия памяти (ZRAM/Zswap) требуют значительных вычислительных ресурсов CPU для сжатия и распаковки данных. CRAM переносит эту нагрузку на специализированные аппаратные блоки, что минимизирует задержки. Если проект будет успешно апстримлен, это станет стандартом для оптимизации памяти в Linux-дистрибутивах, особенно на устройствах с ограниченными ресурсами.
Источник: Phoronix ↗
