← На главную

Linux Storage 2026: swap — overhead, SSD-сжатие, модульные бэкенды

20.05.2026 14:16 · hackernews

На саммите 2026 Linux Storage, Filesystem, Memory Management, and BPF Summit обсудили будущее swap-подсистемы ядра. Три сессии были посвящены её производительности и дружелюбности к flash-накопителям.

Kairui Song представил стремительный обзор изменений. Он внедрил swap table и убрал кучу сложностей: overhead на страницу снизился с 3–11 байт до 2–10. Зал аплодировал. Song хочет обнулить статический overhead, оставив максимум 10 байт, но долгосрочная цель — 3 байта. Refault-трекинг для memory resource controller пока требует больше данных. Он перевёл большинство helper-ов на folio и избавился от обходов swap cache. Теперь задачи упрощаются: некоторые операции работают только с блокировкой folio, есть планы на lockless-алгоритмы. Song объединяет аллокацию folio с swap cache, заменяя «длинный, сложный и гонящийся» fallback-цикл единым helper-ом. Он думает над немедленным удалением страниц из swap cache после записи, чтобы не выгружать лишнего при долгом I/O.

Среди нерешённых проблем — неэффективный swap PMD-уровня huge pages, readahead, тащащий страницы для hibernation (хочет добавить специальный bit), а также конфликт анонимных и shmfs-folio при swap на одно устройство. Song предлагает новый тип swap table. Ещё он рассматривает compaction swap table и хочет переименовать swap files в «swap mappings» — добавить виртуальный swap-слой для ускорения удаления устройств и дефрагментации. RFC-патч уже опубликован.

Youngjun Park рассказал, как сделать swap дружественнее для SSD. Flash-память изнашивается из-за случайных 4KB операций. Его embedded-устройство использует zram-подобный механизм: сжимает страницы в RAM, а сбрасывает на постоянное хранилище через shrinker последовательными блоками. Дедупликация уменьшает число записей — много совпадений с предыдущими hibernation-циклами. Это серьёзно продлевает жизнь накопителю. Christoph Hellwig попросил код, даже «уродливый», чтобы продвинуть обсуждение. Johannes Weiner спросил про zswap с writeback — вариант рассматривали, но не использовали. Matthew Wilcox удивился подходу и предложил перезаписывать полные erase-блоки. Chris Li призвал вендоров раскрывать параметры оптимизации I/O.

Baoquan He предложил swap_ops — концепцию модульных бэкендов для swap, VFS-подобный слой. Из-за закрытия Red Hat в Китае обсуждение вёл Chris Li. swap_ops позволит zram перестать эмулировать блочное устройство и стать нативным бэкендом. Другие варианты — flash-friendly слой Park или работа с raw flash (зал идею не поддержал). Li затронул аллокацию swap-слотов бэкендом и перемещение страниц между бэкендами. Вопросов от группы не последовало.

Читать оригинал →