Показаны сообщения с ярлыком swap. Показать все сообщения
Показаны сообщения с ярлыком swap. Показать все сообщения

воскресенье, 16 сентября 2012 г.

Увеличение Swap'а

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

Возможности увеличения существующего раздела нет, поэтому создадим новый раздел (размером те же 2 ГБ). Я воспользовался для этого программой cfdisk:

# cfdisk /dev/sda

Команда покажет список разделов диска /dev/sda. Там у меня припасено порядка 60 ГБ свободного места в конце диска. Наводим выделение на свободное пространство (стрелочками "вверх", "вниз"). Выбираем в меню пункт "new" (стрелками "влево", "вправо") и указываем размер раздела в мегабайтах. После этого выбираем пункт меню "Write" для записи изменений на диск (соглашаемся вводом "yes"), а затем выбираем "Quit".

Теперь создадим раздел подкачки:

# mkswap /dev/sdaX

X - номер созданного раздела. Теперь можно подключить раздел:

# swapon /dev/sdaX

и проверяем подключен ли новый раздел:

# cat /proc/swaps

Команда покажет список подключенных swap разделов.

Ну и нелишним будет прописать раздел в файл /etc/fstab, чтобы подключался при загрузке:

# nano /etc/fstab

и дописываем в файл строчку:


/dev/sdaX  none  swap  sw  0  0

Вместо /dev/sdaX можно (и даже нужно) указать UUID раздела. UUID раздела выдает команда mkswap при создании swap'а. Если этого не произошло, то можно воспользоваться командой blkid:


# blkid /dev/sdaX

Ну вот и все, задание выполнено.

Разборки с Гибернацией

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

На моей системе для спящего режима используется команда s2disk из пакета uswsusp. Судя по всему что-то не так в конфигурационном файле программы.

Настройки uswsusp хранятся в файле /etc/uswsusp.conf. Открываем его на редактирование в любимом редакторе с правами root'а:

# nano /etc/uswsusp.conf

Интересующая нас опция - shutdown method - задает действие, выполняемое после записи образа памяти на диск. По умолчанию значение опции - "platform". Нам нужно указать значение "shutdown":

shutdown method = shutdown

Теперь все в порядке компьютер нормально выключается.

Из полезных параметров конфигурационного файла стоит отметить еще resume device. Его значение  - это имя swap раздела, на который сохраняется образ оперативной памяти. В моей системе - это /dev/sda5:

resume device = /dev/sda5

Статья, натолкнувшая меня на написание сегодняшней заметки находится здесь. Ну и, конечно, главный источник справочной информации в Linux - команда man:

# man uswsusp.conf 

P. S. Через пару дней снова начались проблемы. Комп уходил в сон, но потом загружался с нуля. А еще через пару дней я снес дома Debian и поставил Calculate. Теперь наслаждаюсь перезагрузкой после сна вместе с отсутствием восстановления из спящего режима. Вобщем, в ближайшем будущем предстоят разборки теперь уже с pm-utils.

суббота, 15 сентября 2012 г.

Оптимизация подкачки

Работая в Linux я заметил, что раздел подкачки используется в том же объеме как и оперативная память. И это не смотря на то, что оперативной памяти еще много( приблизительно половина от имеющейся). Тогда у меня возник вопрос: как на это можно повлиять? Ну а то, что повлиять можно, я не сомневался - это же Линукс и здесь все можно настроить.

Вообще-то я не сильно заморачивался по этому поводу пока не встретил на форуме интересное замечание. Там была рекомендация выставить значение параметра vm.swappiness=10.

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

Значения параметра swappiness - это число от 0 до 100. Значение 0 означает, что своп не будет использован, пока физическая память не заполнится до предела. Значение 100 заставляет ядро агрессивно свопировать процессы на диск.

Чаще всего значение параметра по умолчанию устанавливается равным 60. Значение равное 10 представляется мне более оптимальным. А теперь о том, как это значение выставить.

Для начала узнаем каково же значение параметра выставленное по умолчанию:

# cat /proc/sys/vm/swappiness

Для того, чтобы установить значение параметра, открываем из под учетной записи root на редактирование файл /etc/sysctl.conf:

# nano /etc/sysctl.conf

и добавить в него строку:

vm.swappiness=10

После перезагрузки значение параметра изменится на указанное нами. Чтобы изменить значение до перезагрузки необходимо выполнить (под root) следующую команду:

# sysctl vm.swappiness=10

Указанные операции должны пойти на пользу повышению быстродействия среднестатистическому компьютеру.