Я б дійсно не рекомендував ставити свобідність вище. Поширений механізм в ядрі полягає в тому, що він поміщає сторінки (шматок пам'яті) в своп, щоб звільнити деяку пам'ять для інших запущених завдань.
Перша "проблема", коли ядро хоче звільнити n сторінок, m (з m <n, m - кількість стислих сторінок, необхідних для утримання n), щойно створені в оперативній пам'яті, я не впевнений, чи може це порушити ядро або ні.
Тоді в будь-якому випадку, коли у вас є сторінки в свопі, можливо, згодом ви будете використовувати додаток із деякими його сторінками. Ядро робить це повернення цих сторінок у фізичну пам'ять, але не видаляє їх із свопу (що за допомогою стандартного swap можна сприймати як кешування , тому коли програма повертається у фоновому режимі, ядро не повинно записувати ці сторінки в повільний своп). Однак із zram - це, мабуть, не мудра хитрість, тому що тоді у вас є в пам'яті m сторінок в zram + n сторінок, які знову в пам'яті!
У ядра звичайно є "загальна пам'ять", яку він може використовувати для своєї справи. Коли ви додаєте zram, він рахує лише в пам'яті "swap", як це було б при будь-якому диску на основі диска, але це зменшило фактичну "загальну пам'ять" і цього ядро не очікує / очікує. Іноді через це ти можеш мати дивну та непотрібну поведінку!
Що стосується zram, добре було б, щоб ядро не помінялося занадто сильно на цю область, коли воно знаходиться під тиском пам'яті. І у вас завжди повинен бути реальний розділ для заміни жорсткого диска, більший щонайменше максимального розміру вашого zram, щоб система не отримала OOM, тоді як при цьому ви побачили б багато вільного місця, як повідомляється free
!