Phoronix сообщает о презентации Meta-инженера Грегори Прайса на этой неделе на конференции Linux Plumbers в Праге:
В условиях сегодняшней нехватки памяти, высоких цен и постоянно растущей потребности в объеме памяти инженеры Meta работают над сжатой оперативной памятью («CRAM») для Linux.
Это безаппаратное сжатие по-прежнему обеспечивает доступ к кэш-линиям/байтам сжатой памяти и, в свою очередь, обеспечивает лучшую реализацию, чем ZRAM и Zswap. Весьма многообещающе то, что производительность CRAM близка к исходной для скорости DRAM… Для конечных пользователей, которые уже полагаются на Zswap или ZRAM, CRAM предлагает скорость, близкую к DRAM. Было показано, что данные только для чтения работают так же быстро, как и необработанная производительность DRAM. А для записи памяти CRAM намного быстрее, чем ZRAM, Zswap или простой своп.
«Большинство компонентов, необходимых для поддержки CRAM, уже являются основными», — говорится в статье.
оборудование Тома пишет: «Он использует частный узел NUMA (по сути, процессор-призрак) вместо того, чтобы притворяться блочным устройством, что позволяет Linux продолжать использовать всю свою семантику памяти, включая миграцию и раздувание, для управления CRAM».
Поскольку CRAM хранится в ОЗУ и рассматривается как ОЗУ с полным доступом к кэшу/байтам, доступ к нему можно получить в режиме только для чтения с небольшой задержкой; просто значение сжатия, выгруженное из оборудования… Даже когда вы включаете запись, CRAM все равно работает намного быстрее, чем ZRAM; 5.4х пишет 20% в худшем проверенном случае. Это огромное сокращение по сравнению со случаем 452x только для чтения, но сохраните контекст; Скорость 5,4х все еще титаническая. Огромное снижение производительности при записи связано с необходимостью устранения ошибки страницы и перемещения фолио в собственный домен NUMA, поскольку вы не можете записывать непосредственно в сжатые данные; ты все портишь…
Хотя очевидной целью этой работы (учитывая ее происхождение из Meta Platforms) являются большие серверы Linux, ZRAM и Zswap используются во всей экосистеме Linux, даже на таких ограниченных машинах, как Steam Deck. Многие дистрибутивы по умолчанию включают тот или иной вариант. Похоже, что CRAM может обеспечить значительное ускорение для некоторых из этих машин, так что, надеюсь, он появится в ядре