Использование zRam для оптимизации swap процессов

В современных бюджетных смартфонах остро стоит проблема нехватки оперативной памяти. В последних версиях Android инженеры нашли решение этой проблемы в виде использования zRam — блока подкачки, создаваемого внутри оперативной памяти. Как работает такая технология и насколько она эффективна?

Что такое zRam?

Модуль zRam разработан с целью оптимизации системной памяти путем создания блочного устройства внутри ОЗУ. Таким образом, предотвращается подкачка страниц на диск и увеличивается производительность. За счет сжатия фоновых приложений внутри ОЗУ система способна выполнять большее количество операций подкачки.

Эта технология актуальна для современных бюджетных устройств, которые работают на нескольких ядрах, но имеют всего 512 Мб оперативной памяти. zRam условно увеличивает объем ОЗУ, улучшая работу системы. Но поддержка подобного модуля доступна далеко не всем устройствам.

image

Как активировать оптимизацию системы через zRAM?

Для начала потребуется запустить режим разработчика:

  1. В настройках зайдите во вкладку «О телефоне».
  2. Внутри раздела найдите пункт «Номер сборки».
  3. Нажмите на него 7 раз.

Включаем оптимизацию:

  • Теперь в дополнительных настройках смартфона появился новый пункт «Для разработчиков» — зайдите в него.
  • Найдите опцию «Оптимизация системной памяти». Если такого пункт там нет, значит, данная модель устройства не поддерживает zRam.
  • Активируйте оптимизацию системы.

В разделе «Swappiness» можно узнать, с какой частотой система обращается к zRam по умолчанию. Этот показатель можно изменить, установив значение от 1 до 100. Опция «Swappiness» находится по пути /proc/sys/vm/ через менеджер файлов. Исправность работы модуля проверяется посредством приложения Diskinfo. Если в самом низу меню программы присутствует пункт SWAP, значит, технология активна.

Заключение

Модуль zRam оптимизирует работу системной памяти, увеличивая производительность медленного устройства. Технология разработана для бюджетных многоядерных устройств с низким объемом оперативной памяти. Поддерживается функция только в последних версиях Android.

Всем нам становится неприятно, когда память заканчивается — linux начинает сбрасывать память на жёсткий диск в раздел swap, от чего скорость работы системы падает. А когда начинают требоваться страницы памяти, которые успели засвопаться — вообще «туши свет».

Но что если бы память умела работать как архив с компрессией? Память же сейчас хранится «как есть», не сжимаясь…

Именно об этом задумались создатели проекта zram. С его помощью можно хранить swap данные не на диске, а в «сжатой памяти». Создаются блочные устройства для swap, которые сохраняют информацию в сжатом виде. И всё это в памяти.

В общем, «ловкость рук и никакого мошенничества». Вполне неплохо работает на устройствах, где памяти не хватает (ноутбуки, сервера виртуализации).

Опять же установить zram на Ubuntu / Mint Linut / Debain довольно просто:

sudo aptitude install zram-config

После чего проверить:

$ sudo swapon -s Filename Type Size Used Priority /dev/sda5 partition 4100092 403188 -1 /dev/zram0 partition 490936 136 5 /dev/zram1 partition 490936 140 5 /dev/zram2 partition 490936 140 5 /dev/zram3 partition 490936 140 5

— на каждый процессор по одному «swap-у».

Используйте память с умом — ставьте zram!

Поделиться заметкой:

Linux отлично управляется с оперативной памятью — если посмотреть в диспетчере задач, можно увидеть, что почти вся оперативка занята под файловый кэш. Но нет предела совершенству — свободную оперативную память можно взять под свой контроль, значительно ускорив работу системы и отдельных программ.

В Windows есть утилиты, которые создают диски в оперативке — так называемые Ramdisk’и. В Linux никаких утилит для этого не требуется, эта функциональность — часть ядра, и называется она tmpfs.

Посмотрим, используется ли tmpfs в Linux Mint:

Использование tmpfs в Linux Mint

Как видно по первой строке, Udev держит файлы устройств именно в tmpfs. Также туда монтируются каталоги со служебными файлами. Такую же картину вы увидите практически во всех дистрибутивах. Вот, например, Arch Linux:

Здесь в tmpfs примонтирован ещё и каталог /tmp, в котором лежат временные файлы, кэши, и т. д. Вырисовывается смысл использования tmpfs — файлы, для которых нужна максимальная скорость доступа, и которые можно безболезненно потерять при отключении питания. Ведь оперативная память в тысячи раз быстрее самых быстрых SSD, но теряет содержимое при отключении.

Использовать tmpfs для своих целей не легко, а очень легко. Выбираете удобный путь в файловой системе и прописываете его в /etc/fstab (перед этим не забудьте создать соответствующий каталог):

В первом столбце должно быть указано устройство, в нашем случае это tmpfs. Второй столбец — каталог монтирования. В третьем обозначается тип ФС, у нас это снова tmpfs. Опция nodev отключает создание устройств в монтируемом каталоге, а nosuid запрещает повышение прав — всё это в целях безопасности. Если оттуда не планируется запускать программы, можно добавить ещё noexec. Наконец, опция size задаёт максимальный размер каталога tmpfs. Без этой опции он равен половине оперативной памяти.

После перезагрузки созданный «раздел» tmpfs отображается прямо на рабочем столе:

Для чего можно его использовать? Вариантов много:

  • держать на нём кэш браузера, временные системные файлы — например, монтировать в tmpfs каталог /tmp;
  • разместить обрабатываемые файлы типа исходников, фотографий, и т. д. — время обработки ощутимо сократится;
  • под хранение одноразовых секретных файлов — нажатие кнопки Reset уничтожит их без всяких следов;
  • вынести на него «тяжёлую» программу, чтобы ускорить её запуск — это может быть игра или IDE.

С ростом мощности процессоров в чью-то голову неизбежно пришла мысль: а что если взять tmpfs и примотать к ней скотчем сжатие на лету? Так появилась технология compcache, которая эволюционировала в Zram.

Суть её проста: в оперативке создаётся полноценное блочное устройство с обычной файловой системой, но все данные перед записью на него автоматически сжимаются. Обычно используется алгоритм lz4, потому что он очень и очень быстрый, и при этом сжимает неплохо.

В Ubuntu и производных дистрибутивах нужно установить пакет zram-config:

sudo apt install zram-config

Перезагружаемся и видим, что утилита создала два накопителя Zram, а на них — разделы подкачки:

Что это даёт? Обратите внимание, что приоритет Zram-свопа выше приоритета обычного свопа. Это значит, что при исчерпании памяти будет сначала наполняться Zram. А так как оперативная память в тысячи раз быстрее HDD или SSD, то даже при активном свопинге система не будет адски тормозить!

При этом в Zram-устройство размером в 1 Гб может уместиться около 3 Гб данных, благодаря сжатию lz4. Так что, используя Zram, вы фактически увеличиваете размер оперативной памяти. Пример: у вас есть 4 Гб оперативки, половину из них вы отдаёте под Zram-своп. Благодаря сжатию, из 2 Гб Zram вы получаете около 6 Гб фактического места. И эти 6 Гб, хоть и являются свопом, но работают со скоростью оперативной памяти!

Алгоритм сжатия lz4 мало нагружает процессор — частоты в 1 ГГц уже достаточно, чтобы не ощущать затрат на сжатие. Поэтому Zram с большим эффектом используется в смартфонах: там часто стоят мощные процессоры, но не хватает оперативки. Впрочем, Zram актуален и на десктопах — мало кому нравятся рывки в работе ОС при исчерпании оперативной памяти.

before—>

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

p, blockquote1,0,0,0,0—>

Данная статья подходит для всех брендов, выпускающих телефоны на Android 10/9/8/7: Samsung, HTC, Lenovo, LG, Sony, ZTE, Huawei, Meizu, Fly, Alcatel, Xiaomi, Nokia и прочие. Мы не несем ответственности за ваши действия.

p, blockquote2,0,0,0,0—>

Внимание! Вы можете задать свой вопрос специалисту в конце статьи.

p, blockquote3,0,1,0,0—>

Что такое zRam?

h21,0,0,0,0—>

Разработчики создали данный модуль для оптимизации памяти в системе Андроид. Для этого создается внутри ОЗУ блочное устройство.

p, blockquote4,0,0,0,0—>

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

p, blockquote5,0,0,0,0—>

Данная идея настолько эффективная, что даже Гугл советует использовать zRam для гаджетов, ОЗУ которых не более 512 Мб. Единственный нюанс состоит в том, что метод эффективно работает только с современными бюджетными девайсами, которые базируются на многоядерных процессорах и имеют 512 Мб оперативной памяти.

p, blockquote6,1,0,0,0—>

Читайте Android тормозит и медленно работает

p, blockquote7,0,0,0,0—>

В данном случае на отдельное ядро можно перенести весь поток шифрования, чтобы не задумываться о вопросе производительности. Если zRam использовать на устаревших девайсах с одним ядром, то система будет функционировать с ошибками.

p, blockquote8,0,0,0,0—>

Запускаем через zRam оптимизацию системы

h22,0,0,0,0—>

Пользователю сначала необходимо перейти в режим разработчика:

p, blockquote9,0,0,1,0—>

  • Жмем «Настройки», переходим в раздел «О телефоне».
  • Находим вкладку «Номер сборки» внутри данного раздела.
  • На него требуется нажать 7 раз.

p, blockquote10,0,0,0,0—>

Активируем оптимизацию:

p, blockquote11,0,0,0,0—>

  • В дополнительных настройках гаджета отобразится новый раздел «Для разработчиков». В него необходимо зайти.
  • Находим «Оптимизация системной памяти». При отсутствии данного пункта этот девайс не будет поддерживать zRam.
  • Выполняем оптимизацию Андроид.

В меню «Swappiness» демонстрируются данные, с какой именно частотой к zRam обращается система по умолчанию. Данное значение можно изменять в диапазоне 1 – 100. Располагается функция «Swappiness» в разделе системы /proc/sys/vm/, в который можно попасть при использовании менеджера файлов.

p, blockquote12,0,0,0,0—> p, blockquote13,0,0,0,1—>

Приложение Diskinfo используется для проверки исправного функционирования этого модуля. Если внизу утилиты демонстрируется раздел SWAP, значит данная опция активна.

after—>

«Память заполнена» – очень раздражающее сообщение, которое иногда может появиться на дисплее вашего смартфона.

Некоторые пользователи даже устанавливают приложения-убийцы или другие приложения для управления оперативной памятью, чтобы освободить место для хранения данных. Но действительно ли есть смысл в ручном управлении RAM-памятью на Android-девайсах?

Содержание

Что такое RAM

image

Память заполнена: причина для паники?

Через некоторое время внутренняя память вашего телефона заполняется приложениями, которые вы используете чаще всего. В такой ситуации эта память должна быть частично очищена, чтобы была возможность открывать новые приложения. Однако вам ничего не нужно делать самому – за вас все сделает Android в автоматическом режиме.

Представление о том, что RAM-память внутри Android-девайса нужно очищать вручную, является не совсем верным. Если «оперативка» будет пустой, то вам придется постоянно перезапускать приложения, а это лишняя трата времени, ресурсов телефона и сокращение времени работы аккумулятора.

Полная RAM-память – это не слишком плохо, можно даже сказать, хорошо. Так как Android имеет свои корни в Linux и Unix, системное ядро Linux определяет правила для управления памятью. И такие правила следуют концепции, что свободная внутренняя память – это потерянная память.

Если вы включите смартфон и загрузите несколько приложений, то все эти приложения останутся в памяти. Если вы используете какое-то приложение, вы можете переключиться на главных экран и затем снова вернуться к этому приложению, и оно будет загружаться почти мгновенно. Это связано с тем, что приложение в той или иной форме остается во внутренней памяти.

Но если на вашем девайсе есть приложение-убийца или функция экономии памяти, которая постоянно закрывает процессы фонового режима, вам придется долго ждать, пока загрузятся такие приложения, как скажем, Facebook или Whatsapp. Подобный способ управления RAM-памятью может даже нанести вред производительным смартфонам, например, Samsung Galaxy S7.

Очистка оперативной памяти на Android-устройстве: когда ее нужно делать?

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

Как правило, не рекомендуется прекращать работу приложения или очищать всю память. Тем не менее, бывает ситуация, которая требует прямого действия: когда приложение дает сбой или работает некорректно. Например, это может быть браузер, который работает с подтормаживанием или в котором присутствуют ошибки отображения информации. Либо это могут быт проблемы с загрузкой Facebook или Twitter. Такие симптомы могут быть весьма разнообразными. Даже перегрев смартфона без очевидной причины может быть связан с приложением, давшем сбой.

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

image

Как отобразить использование RAM-памяти и закрыть Android-приложения

Если сокрытие приложения не помогает, то вам может потребоваться более радикальный подход – закрыть приложение вручную. Это можно сделать в настройках. Здесь вы также можете посмотреть, какие приложения используют оперативную память больше всего, и какие приложения можно удалить в будущем.

Итак, чтобы отобразить объем используемой «оперативки», войдите в настройки вашего телефона, найдите меню приложений и откройте вкладку «Работающие». Начиная с версии Android Marshmallow, это представление имеет собственную запись в разделе «Память» в главных настройках.

Здесь вы увидите статистику использования памяти за последнее время. В зависимости от смартфона, подробный обзор может быть сокрыт за каким-либо дополнительным меню. Чтобы действительно закрыть приложение, вам необходимо перейти к информации о приложении. Как правило, сделать это можно, выбрав нужное приложение в перечне приложений. Здесь вы увидите иконку для того, чтобы остановить приложение. Впоследствии бывает так, что отключенное приложение снова запускается, но причина этого почти всегда заключается в тех или иных действиях пользователя.

image

Нажатие на отдельные приложения определит, какие из них потребляют большую часть системной памяти. Перезапуск смартфона может помочь в случае, если проблема не устранена.

Очистка RAM-памяти: удаление приложений, «съедающих» память

Приведенный выше список показывает, сколько памяти требуется приложениям. Эта цифра может также указывать на то, что для приложения требуется слишком много ресурсов. Помимо прочего, вы можете удалить приложения, которые не использовали длительное время, или те, которые выглядят подозрительно.

Войдите в меню настроек приложения или менеджера приложений и найдите соответствующее приложение. Теперь просто удалите приложение, если это возможно. Если это не сработает, вам необходимо удалить «расширенные права» приложения. Обычно вы предоставляете такие права приложению во время его установки на телефон. Откройте основные настройки, выберите раздел «Безопасность», затем «Администраторы устройства» и удалите крестик рядом с приложением. Теперь вы можете удалить приложение.

image

Заключение

Итак, нужно ли вам делать чистку внутренней памяти? Ответ прост – нет! Вам нужно лишь принять меры тогда, когда ваш телефон станет работать медленнее. В целом, Android-девайсы могут самостоятельно управлять RAM-памятью на оптимальном уровне. Закрытие приложений в общем списке приложений может улучить общую функциональность устройства, но это не имеет ничего общего с оптимизацией и эффективностью оперативной памяти.

На наш взгляд, автоматическое управление RAM-памятью Android-девайса – это самая быстрая и эффективная система, которую вы могли бы пожелать. Так что оставьте управление памятью самой ОС Android, и она вас не подведет

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
Citilink-kabinet.ru
Добавить комментарий