Посмотрим правде в глаза, некоторые из нас не так часто обновляются. Или, по крайней мере, как пользователи Linux, нам нравится перенацелить наши старые ноутбуки / компьютеры. Многие дистрибутивы комфортно работают в системах с небольшим объемом оперативной памяти (оперативной памяти). Браузеры, однако, не столь снисходительны и требуют все больше и больше памяти по мере развития Интернета.
Хотя системе с рабочим столом LXDE может потребоваться всего 150 МБ ОЗУ после загрузки, Chromium, Chrome или Firefox быстро съедают сотни мегабайт и даже несколько гигабайт оперативной памяти, когда мы открываем несколько вкладок.
И вот когда это происходит! Жесткий диск начинает издавать скрежет. Музыка начинает заикаться. Когда мы переключаемся на другое приложение, проходят десятки секунд, пока оно не появится на экране. Даже курсор мыши может начать отставать. Это эффект перебоя диска.
Что такое перегрузка диска?
Во-первых, нам нужно понять менять. Когда у нас заканчивается свободная оперативная память, данные приложения, к которым операционная система не имела доступа долгое время, перемещаются в область подкачки. Часто это находится на физическом запоминающем устройстве. Таким образом операционная система может освободить часть памяти, которая сейчас требуется программе. Таким образом, вкладка в нашем браузере, к которой у нас не было доступа в течение последнего часа, может быть заменена на жесткий диск. Теперь редактор изображений GIMP может работать. Когда мы закрываем ее и переключаемся обратно на эту старую вкладку, операционная система возвращает ее обратно в память (считывает ее с диска и копирует обратно в оперативную память).
Этот механизм хорошо работает при обмене небольшими объемами данных. Но когда, скажем, доступно только 2 ГБ ОЗУ, а для всех открытых программ требуется 4 ГБ, операционная система должна постоянно менять местами. Постоянное перемещение данных из памяти на диск, с диска на память и обратно происходит очень медленно, особенно с жесткими дисками. В такой ситуации запоминающее устройство не может достаточно быстро выполнять запросы. Короче говоря, когда происходит сбой диска, все становится очень медленно.
SSD-диски отлично подходят для обмена
В Интернете до сих пор ходит миф: «Никогда не настраивайте свопинг на SSD. Это убьет ваше устройство! » Так было несколько лет назад, но теперь это не так. Фактически, настройка подкачки на SSD-накопителе дает отличные результаты. Если в компьютере есть твердотельный накопитель с хорошей производительностью произвольного чтения / записи (не менее 300 МБ), настройте на нем раздел подкачки и игнорируйте остальную часть этой статьи. Когда операционной системе необходимо заменить 1 ГБ данных, это займет менее пяти секунд, тогда как на жестком диске это займет больше минуты.
Как значительно уменьшить загрузку диска в Linux
К счастью, большая часть данных, хранящихся в ОЗУ, очень сжимаема. Это означает, что если мы возьмем 200 МБ данных, хранящихся в памяти, и сжимаем их, мы можем уменьшить размер до 100 МБ. Следовательно, это означает, что системе придется записывать на диск гораздо меньше данных при подкачке.
Представьте, что вместо того, чтобы ждать тридцать секунд, чтобы переключиться на программу, вам нужно подождать пятнадцать. Это ощутимое улучшение. Но на самом деле ускорение намного более значимо (возможно, придется подождать менее десяти секунд), потому что инструмент, который мы будем использовать, более сложный, чем этот. Он разумно отправляет на диск только те биты и фрагменты, которые не могут быть сжаты, а остальные хранятся в зарезервированной части памяти. Если вы хотите узнать больше о его внутреннем устройстве, ознакомьтесь с официальная страница ядра Linux о zswap.
Простая версия преимуществ, которые мы получаем от использования zswap, заключается в том, что вместо ужасного замедления, когда у нас заканчивается памяти, мы получаем терпимое, умеренное замедление, которое длится секунды вместо десятков секунд или даже минут.
Как включить zswap в дистрибутивах на основе Debian (Ubuntu, Linux Mint и т. Д.)
Откройте приложение терминала и выполните эту команду, чтобы отредактировать файл конфигурации шаблона загрузчика Grub:
sudoedit /так далее/дефолт/жратва
С помощью клавиш управления курсором перейдите к строке, которая начинается с «GRUB_CMDLINE_LINUX_DEFAULT». В кавычках добавьте следующий текст:
zswap.enabled =1
Например, строка, которая была GRUB_CMDLINE_LINUX_DEFAULT = "тихий всплеск"
становится GRUB_CMDLINE_LINUX_DEFAULT = "тихий всплеск zswap.enabled = 1"
.
Чтобы сохранить файл, нажмите Ctrl + Икс, затем «y», а затем Enter.
Сгенерируйте новые файлы конфигурации Grub в соответствии с шаблоном, который мы ранее редактировали:
судо update-grub
Перезагрузитесь, и модуль zswap будет включен автоматически.
Как включить zswap в Fedora и OpenSUSE
Процедура здесь аналогична описанной в предыдущем разделе, но с некоторыми особенностями. Отредактируйте файл конфигурации шаблона Grub.
sudoedit /так далее/дефолт/жратва
Добавлять zswap.enabled = 1
в кавычках в строке, начинающейся с GRUB_CMDLINE_LINUX
.
нажимать Ctrl + Икс, затем «y», а затем Enter, чтобы сохранить файл.
В зависимости от того, загружается ли ваш компьютер из системы BIOS или UEFI, файл конфигурации Grub создается по другому пути. Чтобы узнать, где он сейчас находится, введите следующую команду:
судонайти/ботинок/-название grub.cfg
Используйте путь, который выводится здесь, в следующей команде. Например, в нашем случае найденный путь был «/boot/grub2/grub.cfg», поэтому мы добавим его в конец следующей команды после «-o»:
судо grub2-mkconfig -о/ботинок/grub2/grub.cfg
Перезагрузите компьютер. После перезагрузки проверьте, активен ли модуль:
Кот/sys/модуль/zswap/параметры/включено
Если на выходе «Y», значит, модуль работает правильно.
Как включить zswap в Arch Linux
Установите пакет systemd-swap:
судо Пакман -Sy systemd-swap
Заставьте этот пакет творить чудеса во время загрузки:
судо systemctl включить systemd-swap
Запустите его сейчас, без перезагрузки:
судо systemctl запустить systemd-swap
Чтобы проверить, все ли работает должным образом, проверьте, включен ли модуль zswap:
Кот/sys/модуль/zswap/параметры/включено
Если выход «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 может получать комиссию за продукты, приобретенные по нашим ссылкам, что поддерживает работу, которую мы делаем для наших читателей.