Новая технология Compressed RAM (CRAM) для Linux обещает значительно повысить производительность оперативной памяти
Подробнее
Tecnoblog
tecnoblog.net

Новая технология Compressed RAM (CRAM) для Linux обещает значительно повысить производительность оперативной памяти

Проект Compressed RAM (CRAM), предложенный инженером Григори Присом, представляет собой решение для более эффективного управления памятью в операционной системе Linux. В отличие от существующих технологий ZRAM и Zswap, CRAM рассматривает сжатую область как нативную оперативную память, что позволяет избежать использования традиционного или виртуального свопа и оптимизировать доступ к данным.

На презентации, проведенной на конференции Linux Plumbers Conference 2026, было продемонстрировано, что CRAM достиг производительности, которая в 452 раза превышает показатели ZRAM. Команда Григори Приса, инженер из Meta, представила концепцию, способную сделать ядро Linux еще более эффективным при работе с большими объемами данных в ОЗУ, особенно в условиях дефицита памяти.

Как следует из названия, CRAM основан на новом подходе к сжатию данных непосредственно в оперативной памяти. Хотя подобные методы существуют, в Linux выделяются два стандарта: ZRAM и Zswap. Понимание их принципов помогает оценить преимущества CRAM.

ZRAM создает своего рода виртуальный блок данных, имитируя жесткий диск или SSD внутри самой оперативной памяти. Когда память начинает заполняться, неактивные или редко используемые страницы памяти сжимаются и перемещаются в этот блок, тем самым снижая потребление ОЗУ. Важно отметить, что ZRAM функционирует как механизм свопинга, используя часть дискового пространства как расширение ОЗУ, но делает это внутри самой RAM.

Zswap схож по принципу, но более продвинут. Он перехватывает попытки операционной системы отправить страницы памяти в настоящий своп (на HDD или SSD). Вместо этого, данные этих страниц сжимаются и размещаются в определенных областях оперативной памяти. Только когда память приближается к полной загрузке, страницы отправляются в настоящий своп.

Несмотря на то, что ZRAM и Zswap являются гениальными решениями, они сталкиваются с потенциальной проблемой производительности. Динамика сжатия и распаковки данных для обработки через свопы, будь то настоящие или виртуальные, значительно медленнее, чем операции, выполняемые напрямую с оперативной памятью.

Именно здесь CRAM выступает в качестве решения. Хотя на первый взгляд CRAM напоминает ZRAM, ключевое различие заключается в том, что в первом случае блок, хранящий сжатые данные, обрабатывается как настоящая оперативная память, а не как традиционный своп. Linux начинает работать с этим пространством так, будто это дополнительный блок RAM, активируя нативные механизмы управления памятью ядра для работы с областью, содержащей сжатые данные.

Эти встроенные функции позволяют, при определенных обстоятельствах, получать доступ к сжатым данным без возникновения ошибки страницы (page fault) — ситуации, когда система пытается обратиться к странице памяти, которая недоступна или не отображена, требуя вмешательства ядра. Они также обеспечивают миграцию страниц между адресами, уменьшая риск прерываний, среди прочего, что положительно сказывается на производительности.

Насколько именно улучшается производительность? На мероприятии Linux Plumbers Conference (LPC) 2026 Григори Прис объяснил, что в конкретном бенчмарке CRAM позволил выполнить 489 миллионов операций в секунду против 1,1 миллиона операций в секунду у ZRAM. Это означает, что в данном тесте CRAM оказался в 452 раза быстрее, чем классический ZRAM, и это было достигнуто без необходимости создания совершенно новой инфраструктуры управления памятью в Linux.

Хотя уровень производительности может варьироваться в зависимости от приложения, тенденция указывает на то, что CRAM всегда будет демонстрировать лучшие результаты. Проект многообещающий, однако необходимо сдержать чрезмерный энтузиазм, поскольку разработка CRAM еще не завершена, и на данный момент нет запланированной даты официального выпуска. Также следует учитывать, что подобное решение, вероятно, будет ориентировано на профессиональные приложения, работающие на серверах, хотя оно потенциально может быть полезно и для домашнего использования.

Популярное