25 мая 2011 г.

Подкачка: swap-файл и swap-раздел

Когда я себе устанавливал линукс уже как единственную OS, то и машина была другая и памяти меньше, поэтому раздел подкачки был назначен около 500Мб. Около, потому что графический инсталлятор не давал выбрать нормальное значение 512Мб, а с reboot и fdisk на тот момент замарачиваться не хотелось. Уж сколько раз версия дистрибутива и железа поменялась, а бедный своп все тот же...

N.B. Обычно, размер раздела подкачки рекоменуют устанавливать равный ОЗУ или вдвое больше.

Но все течет и все меняется, ибо нет ничего вечного под этим солнцем. Пришло время и желание увеличить подкачку, хотя конечно многие скажут: "докупи ОЗУ, благо оно сейчас дешевое", но пока мы пойдем более интересным путем... ;) Для начала посмотрим сколько же у нас пространства подкачи, используя swapon или free:

paul@imhology:~$ sudo swapon -s
FilenameTypeSizeUsedPriority
/dev/sda1partition4899440-1
  • Filename описывает имеющиеся swap и где они находятся.
  • Type указывает тип подкачки: partition (раздел) или file (файл).
  • Size общий размер подкачки.
  • Used показывает, сколько задействовано подкачки.
  • Priority приоритет использования (man swapon)

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

Создание swap-файла в Linux

sudo dd if=/dev/zero of=/opt/swapfile bs=1G count=2

В команде dd для задания размеров можно использовать суффиксы K, M, G для килобайт, мегабайт и гигабайт соответственно. В данном примере это 2 Gb файла подкачки, который будет находится в каталоге /opt. Так как файлов подкачки может быть множество не хотелось их складировать в корень...

Поясняем системе, что созданный пустой файл это всё-таки файл подкачки для Linux:

sudo mkswap /opt/swapfile

Подключаем созданный swap-файл:

sudo swapon /opt/swapfile

При этом в выводе команды top или команды free должно появиться упоминание, что свопинга в системе прибавилось. Чтобы отключить файл подкачки, выполняем:

sudo swapoff /opt/swapfile

Чтобы постоянно не подключать вручную swap-файл/раздел, полезно занести запись в /etc/fstab следующего содержания:

/opt/swapfile none swap sw 0 0

Вместо /opt/swapfile можно использовать UUID=732b13a5-d036-41f1-a6bf-21c8b1837b01, который получим при создании swap-файла. И так, проверим результаты наших телодвижений:

paul@imhology:~$ sudo swapon -s
FilenameTypeSizeUsedPriority
/dev/sda1partition4899440-1
/opt/swapfilefile20971480-2

P.S. За интенсивность обращения системы к swap-файлам и swap-разделам отвечает параметр swappiness (по умолчанию 60)  и другие в файле /etc/sysctl.conf с баловства с которым я и начал, но результаты моих эксперементов меня не удовлетворили и я решил просто создать файл подкачки, а остальное вернуть к значениям по умолчанию.

Источник: Добавляем swap файл или расширяем уже существующий

Комментариев нет: