среда, 12 сентября 2012 г.

Оптимизируем работу Linux с помощью zram

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

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

И вот бывает так, что памяти ещё немало, а система начинает ощутимо работать с диском из-за swap. И кому-то пришла гениальная идея - а что, если создать виртуальный swap-файл и разместить его в оперативной памяти?

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

Ну это же Линукс, верно? Так что сказано — сделано. Что же нужно сделать, чтобы включить это чудо? На самом деле, все необходимые инструменты уже есть в вашей системе, нужно только включить. Но даже это уже сделано за вас. Нужно просто установить один пакет из PPA:
sudo add-apt-repository ppa:shnatsel/zram
sudo apt-get update
sudo apt-get install zramswap-enabler
Результатом установки этого пакета станет то, что в вашу систему будет добавлен init-скрипт, который будет при каждой загрузке создавать такой swap файл, автоматически подбирая оптимальный размер.

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

4 комментария:

  1. Грамотное решение! Спасибо! Возьму на заметку!

    ОтветитьУдалить
  2. Пишет после sudo apt-get update
    W: Не удалось получить http://ppa.launchpad.net/shnatsel/zram/ubuntu/dists/lucid/main/binary-i386/Packages.gz 404 Not Found

    ОтветитьУдалить
    Ответы
    1. Ну там нет репозитария для Lucid (10.04). Пора бы уж и обновиться :)

      Удалить
    2. Пора бы уже выпустить стабильную версию ОСи с 10-го года.
      И прога для тарых компов, а не новых. А тут про 4-х ядерники только и и7-е..

      Удалить