Страница 1 из 1
Linux: «Бесплатная» RAM за счет процессора
Добавлено: 19 окт 2022, 18:03
hellonet
Если вы вдруг оказались с компьютером, в котором RAM распаяна, или все слоты уже использованы, или просто нет возможности добавить еще одну планку памяти, то существует простое решение, имя ему zram.
Я не буду подробно описывать все прелести zram, в интернете достаточно много информации о том, что это такое и как можно использовать. Здесь же я хочу предоставить короткую инструкцию, как быстро и просто "добавить" себе оперативной памяти в популярной ОС.
Не претендую на особую новизну информации. Просто тема давно не поднималась, да ещё и ноутбук у меня имеет всего 8Гб
распаянной памяти и добавить нельзя
https://habr.com/ru/post/693878/
Linux: «Бесплатная» RAM за счет процессора
Добавлено: 19 окт 2022, 18:53
Damian
Есть такое да,но как этой технологией пользоваться,вообще не понимаю
Код: Выделить всё
swapon --show
NAME TYPE SIZE USED PRIO
/dev/zram0 partition 734,4M 0B 5
/dev/zram1 partition 734,4M 0B 5
Linux: «Бесплатная» RAM за счет процессора
Добавлено: 19 окт 2022, 22:09
hellonet
Damian писал(а): ↑19 окт 2022, 18:53
Есть такое да,но как этой технологией пользоваться,вообще не понимаю
Пока тоже, но на досуге хочу попробовать на своём ноуте
Linux: «Бесплатная» RAM за счет процессора
Добавлено: 19 окт 2022, 22:15
ilikethat
hellonet, это то сейчас в смартфонах на Андроид предлагают?
Linux: «Бесплатная» RAM за счет процессора
Добавлено: 19 окт 2022, 22:56
volp
Мне эта "бесплатная RAM" очень напомнила технологию DriveSpace на заре цивилизации . Тоже тогда было заявлено, что при наличии быстрого проца , вы не заметите сжатие и распаковку данных с тома drvspase , к тому же при установке драйвера пустой том чудесным образом расширялся чуть ли не в десять раз . Практика показала бесполезность этой технологии , разве что только для тогдашних баз данных.
Linux: «Бесплатная» RAM за счет процессора
Добавлено: 20 окт 2022, 02:26
slant
После: "1. Отключаем swap" - становится ясно, что автор статьи курил что-то не то...

Ибо хороший способ ловить OOM т.к. даже сжатая память не бесконечная. Правильный подход - тюниг приоритета использования. Правда там думать надо.
zswap, кстати, отключать действительно стоит, чтобы двойную работу система не пыталась делать.
И еще у него: "В своей версии конфига я установил иной алгоритм сжатия (zstd), если процессор будет плохо справляться - можно попробовать менее требовательный lz4." - lz4 МЕДЛЕННЕЕ zstd. Более быстрый - lzo, но выигрыш по сравнению с zstd - очень невелик. Это было раньше: lz4 медленно но жмем сильно, lzo - быстро но слабо. Сейчас zstd почти догоняет lzo, при сжатии практически как у lz4 (там правда тип сжимаемых данных влияет - что-то лучше что-то хуже, если сравнивать).
Кроме того, надо иметь в виду, что zram - это эмуляция блочного устройства в памяти. Т.е. объем отданный ей, будет недоступен процессу напрямую, т.к. это УЖЕ swap. Просто в памяти. Т.е. если у вас один процесс активно жрет больше памяти чем доступно остатка без zram - процесс свопинга начнет жрать производительность катастрофически. То что предложил автор статьи (отдать 99% под zram) - это хороший способ просадить реальную производительность этак процентов на 80 - тут в общем-то от cpu зависит, и от частоты памяти, но просадка будет. В идеале, под zram можно выделять столько памяти сколько у вас обычно остается свободно при обычных задачах. Т.е. допустим есть 16Gb в машине. И система + броузер + еще что-то - и ими обычно занято 8-10Gb из 16-ти. Вот 8GB здесь можно отдать не рискуя серьезной просадкой, и получив выигрыш.
А то, что учинил автор статьи - это весьма заковыристый способ выстрелить себе в колено.
А, да. Еще zram в свое время заработал весьма мрачную репутацию - вызывал разрушения FS, хотя вроде как победили. И крайне не рекомендуется даже пытаться использовать сон и гибернацию на машине с ним.
Linux: «Бесплатная» RAM за счет процессора
Добавлено: 20 окт 2022, 14:38
slant
volp писал(а): ↑19 окт 2022, 22:56
очень напомнила технологию DriveSpace на заре цивилизации . Тоже тогда было заявлено, что при наличии быстрого проца , вы не заметите сжатие и распаковку данных с тома drvspase , к тому же при установке драйвера пустой том чудесным образом расширялся чуть ли не в десять раз . Практика показала бесполезность этой технологии , разве что только для тогдашних баз данных.
Кстати, из этой "бесполезной" технологии выросли возможности сжатия на лету у NTFS, BTRFS, ZFS, и т.д.

Разумеется, это не панацея, и не "в 10 раз", но есть очень много случаев где оно весьма полезно. Всякие текстовые библиотеки, архивы сайтов, низко нагруженные базы данных, место под бекапы, и т.д. и т.п, особенно на HDD. В последнем случае, на современном железе еще и прирост скорости получается иногда. Т.к. сжатое будет писаться/читаться меньше времени даже с упаковкой/распаковкой, чем просто оригинальный объем данных на диск слитый. Операции random access правда страдают, да, потому еще корневой раздел сжимать - далеко неоднозначное решение. Но на линуксе оно несколько компенсируется агрессивным кешированием (если памяти достаточно).
Linux: «Бесплатная» RAM за счет процессора
Добавлено: 20 окт 2022, 15:29
Chocobo
zram сейчас проще активировать путем установки пакета systemd-zram-generator
из основных репозиториев
после ребута заведет /dev/zram0
в половину от объема оперативки
ну и юнит есть systemctl status systemd-zram-setup@zram0
Linux: «Бесплатная» RAM за счет процессора
Добавлено: 20 окт 2022, 16:08
Damian
Не совсем понятно,получается раздел swap не нужно создавать.
Linux: «Бесплатная» RAM за счет процессора
Добавлено: 20 окт 2022, 17:20
slant
Damian писал(а): ↑20 окт 2022, 16:08
Не совсем понятно,получается раздел swap не нужно создавать.
НУЖНО. Точнее - если он (или swap-файл) есть - то второй/новый не нужен. Но отключать swap на нормальном диске - глупость, в 95% случаев.
Linux: «Бесплатная» RAM за счет процессора
Добавлено: 20 окт 2022, 20:05
Damian
То есть если я правильно понял создаётся один обычный swap-раздел,он включается но работать будет по технологии zram если конечно она у нас есть , те установлена в системе или используется по умолчанию верно?
Linux: «Бесплатная» RAM за счет процессора
Добавлено: 20 окт 2022, 21:26
slant
Damian писал(а): ↑20 окт 2022, 20:05
То есть если я правильно понял создаётся один обычный swap-раздел,он включается но работать будет по технологии zram
Нет. Не так.
1. swap-ов может быть несколько штук. С разным приоритетом, либо с одинаковым. Чтобы использовались в той последовательности как мы хотим, или все одновременно. Это, кстати, очень полезно и без zram может быть.
2. zram - это swap раздел в памяти. (Чаще всего. Это основной, но все же частный случай - может быть и другое применение - как полноценный виртуальный диск, скажем.)
3. Приоритетами swap-ов организуется каскад: сначала данные попадают в на swap в zram. Когда его перестает хватать - начинает использоваться swap на диске. Причем в простейшем случае - данные туда не вытесняются из zram а пишется то, что не влезло. Потому отключение zswap здесь еще не особо нужно - это просто два swap одновременно, с приоритетом на тот что в zram. Такая конфигурация настраивается одним чихом - особенно через zram-generator (это его конфиг по умолчанию).
4. Если подумать и порыться в настройках, каскад можно сделать полноценным: память -> zram -> swap. Вот здесь уже zswap не нужен - тут в swap пойдут уже сжатые данные.