Используйте Zswap для повышения производительности на ПК с Linux с небольшим объемом оперативной памяти

Admin

Посмотрим правде в глаза, некоторые из нас не так часто обновляются. Или, по крайней мере, как пользователи Linux, нам нравится перенацелить наши старые ноутбуки / компьютеры. Многие дистрибутивы комфортно работают в системах с небольшим объемом оперативной памяти (оперативной памяти). Браузеры, однако, не столь снисходительны и требуют все больше и больше памяти по мере развития Интернета.

Хотя системе с рабочим столом LXDE может потребоваться всего 150 МБ ОЗУ после загрузки, Chromium, Chrome или Firefox быстро съедают сотни мегабайт и даже несколько гигабайт оперативной памяти, когда мы открываем несколько вкладок.

И вот когда это происходит! Жесткий диск начинает издавать скрежет. Музыка начинает заикаться. Когда мы переключаемся на другое приложение, проходят десятки секунд, пока оно не появится на экране. Даже курсор мыши может начать отставать. Это эффект перебоя диска.

Что такое перегрузка диска?

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

zswap-жесткий-диск

Этот механизм хорошо работает при обмене небольшими объемами данных. Но когда, скажем, доступно только 2 ГБ ОЗУ, а для всех открытых программ требуется 4 ГБ, операционная система должна постоянно менять местами. Постоянное перемещение данных из памяти на диск, с диска на память и обратно происходит очень медленно, особенно с жесткими дисками. В такой ситуации запоминающее устройство не может достаточно быстро выполнять запросы. Короче говоря, когда происходит сбой диска, все становится очень медленно.

SSD-диски отлично подходят для обмена

В Интернете до сих пор ходит миф: «Никогда не настраивайте свопинг на SSD. Это убьет ваше устройство! » Так было несколько лет назад, но теперь это не так. Фактически, настройка подкачки на SSD-накопителе дает отличные результаты. Если в компьютере есть твердотельный накопитель с хорошей производительностью произвольного чтения / записи (не менее 300 МБ), настройте на нем раздел подкачки и игнорируйте остальную часть этой статьи. Когда операционной системе необходимо заменить 1 ГБ данных, это займет менее пяти секунд, тогда как на жестком диске это займет больше минуты.

Как значительно уменьшить загрузку диска в Linux

zswap-мем-сжатие-RAM

К счастью, большая часть данных, хранящихся в ОЗУ, очень сжимаема. Это означает, что если мы возьмем 200 МБ данных, хранящихся в памяти, и сжимаем их, мы можем уменьшить размер до 100 МБ. Следовательно, это означает, что системе придется записывать на диск гораздо меньше данных при подкачке.

Представьте, что вместо того, чтобы ждать тридцать секунд, чтобы переключиться на программу, вам нужно подождать пятнадцать. Это ощутимое улучшение. Но на самом деле ускорение намного более значимо (возможно, придется подождать менее десяти секунд), потому что инструмент, который мы будем использовать, более сложный, чем этот. Он разумно отправляет на диск только те биты и фрагменты, которые не могут быть сжаты, а остальные хранятся в зарезервированной части памяти. Если вы хотите узнать больше о его внутреннем устройстве, ознакомьтесь с официальная страница ядра Linux о zswap.

Простая версия преимуществ, которые мы получаем от использования zswap, заключается в том, что вместо ужасного замедления, когда у нас заканчивается памяти, мы получаем терпимое, умеренное замедление, которое длится секунды вместо десятков секунд или даже минут.

Как включить zswap в дистрибутивах на основе Debian (Ubuntu, Linux Mint и т. Д.)

Откройте приложение терминала и выполните эту команду, чтобы отредактировать файл конфигурации шаблона загрузчика Grub:

sudoedit /так далее/дефолт/жратва
zswap-edit-grub-template-config

С помощью клавиш управления курсором перейдите к строке, которая начинается с «GRUB_CMDLINE_LINUX_DEFAULT». В кавычках добавьте следующий текст:

zswap.enabled =1
zswap-редактирование-GRUB-шаблон-конфигурация-2

Например, строка, которая была GRUB_CMDLINE_LINUX_DEFAULT = "тихий всплеск" становится GRUB_CMDLINE_LINUX_DEFAULT = "тихий всплеск zswap.enabled = 1".

Чтобы сохранить файл, нажмите Ctrl + Икс, затем «y», а затем Enter.

Сгенерируйте новые файлы конфигурации Grub в соответствии с шаблоном, который мы ранее редактировали:

судо update-grub
zswap-update-grub-готово

Перезагрузитесь, и модуль zswap будет включен автоматически.

Как включить zswap в Fedora и OpenSUSE

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

sudoedit /так далее/дефолт/жратва

Добавлять zswap.enabled = 1 в кавычках в строке, начинающейся с GRUB_CMDLINE_LINUX.

zswap-редактирование-личинка-шаблон-Fedora

нажимать Ctrl + Икс, затем «y», а затем Enter, чтобы сохранить файл.

В зависимости от того, загружается ли ваш компьютер из системы BIOS или UEFI, файл конфигурации Grub создается по другому пути. Чтобы узнать, где он сейчас находится, введите следующую команду:

судонайти/ботинок/-название grub.cfg
zswap-find-grub-cfg-on-fedora

Используйте путь, который выводится здесь, в следующей команде. Например, в нашем случае найденный путь был «/boot/grub2/grub.cfg», поэтому мы добавим его в конец следующей команды после «-o»:

судо grub2-mkconfig /ботинок/grub2/grub.cfg

Перезагрузите компьютер. После перезагрузки проверьте, активен ли модуль:

Кот/sys/модуль/zswap/параметры/включено

Если на выходе «Y», значит, модуль работает правильно.

Как включить zswap в Arch Linux

Установите пакет systemd-swap:

судо Пакман -Sy systemd-swap
zswap-pacman-install-systemd-swap

Заставьте этот пакет творить чудеса во время загрузки:

судо systemctl включить systemd-swap

Запустите его сейчас, без перезагрузки:

судо systemctl запустить systemd-swap

Чтобы проверить, все ли работает должным образом, проверьте, включен ли модуль zswap:

Кот/sys/модуль/zswap/параметры/включено
zswap-включить-systemd-своп-сервис

Если выход «Y», это означает, что модуль активен.

Как включить zswap в разных дистрибутивах

Вообще говоря, включить zswap во время загрузки так же просто, как добавить zswap.enabled = 1 к параметрам вашего ядра. Большинство дистрибутивов по умолчанию используют Grub2 в качестве загрузчика. Если вы используете другой загрузчик, найдите файл конфигурации, в котором хранятся параметры ядра, передаваемые во время загрузки, и добавьте zswap.enabled = 1 как дополнительный параметр.

Еще один параметр, с которым вы можете поиграть, чтобы определить, улучшает ли он производительность для вашего конкретного варианта использования, - это zswap.max_pool_percent = 20. Вы можете настроить его, изменив число в конце: например, zswap.max_pool_percent = 50.

Добавьте его к тем же параметрам ядра, где вы добавляете zswap.enabled = 1. Рекомендуется не превышать 50%, так как это может отрицательно сказаться на системах с небольшим объемом оперативной памяти.

Вывод

Если у вас часто не хватало оперативной памяти в вашей старой системе и вы испытывали раздражающие эффекты перегрузки диска, вы сразу же заметите и оцените разницу с этого момента. Вместо ужасного замедления вы будете испытывать легкую временную задержку, которая длится несколько секунд (вместо минут), когда операционная система должна переместить большой объем данных на диск. Вы сможете продолжить работу в ситуациях, когда раньше вы вообще не могли использовать свой компьютер во время его замены.

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

Что такое Nostr и как его использовать в Linux
Что такое Nostr и как его использовать в Linux

Nostr — это новый и инновационный интернет-протокол, цель которого — упростить использование соци...

UNIX против Linux: чем они отличаются?
UNIX против Linux: чем они отличаются?

UNIX — это мощная многопользовательская операционная система (ОС), которая более 40 лет определял...

Как использовать GPG с GNU Kleopatra в Linux
Как использовать GPG с GNU Kleopatra в Linux

GNU Privacy Guard (GPG) — одна из самых важных программ, доступных на сегодняшний день, поскольку...