Настройка SWAP и подключение SWAP-файла в Ubuntu 14.04

swap

Сегодня мы поговорим об swap, варианты его подключения + тюнинг.

Традиционный способ подключение swap — при установке системы, выделить отдельный раздел для него и примонтировать. Этот способ имеет свои плюсы, самое главное — если это свежий диск, то выделение ему целого раздела позволяет избежать фрагментации. Это единственный плюс, т.к. начиная с некоторого патча в ядре 2.6 swap-разделы по производительности не отличаются от swap-файлов. Файлы удобнее тем, что их легко создать и перемасштабировать, как тебе нравится. Вот например, в один прекрасный день мне показалось, что на моем Зене раздел в 4 гига под swap на SSD уж слишком жирно.. и решил я этот раздел снести, свободное место слить в /home и добавить swap поменьше, уже файликом. Итак, как это делается… поехали.

Проверим включен ли swap сейчас:

free -m
             total       used       free     shared    buffers     cached
Mem:          3953        154       3799          0          8         83
-/+ buffers/cache:         62       3890
swap:                      0          0          0

0 — выключен. Значит нужно его добавить.Прежде чем продолжить, решим сколько же нам swap то нужно на нашем десктопе, смотрим табличку:

      RAM(MB)  No hibernation   With Hibernation   Maximum
         256     256              512               512
         512     512             1024              1024
        1024    1024             2048              2048

      RAM(GB)  No hibernation   With Hibernation    Maximum
          1      1                2                   2
          2      1                3                   4
          3      2                5                   6
          4      2                6                   8
          5      2                7                  10
          6      2                8                  12
          8      3               11                  16
         12      3               15                  24
         16      4               20                  32
         24      5               29                  48
         32      6               38                  64
         64      8               72                 128
        128     11              139                 256

Гибернацией вообще пользуются редко… поэтому. для 4-х гиг памяти, достаточно 2 гига свапа. Ок. Убедитесь что у вас есть свободное место в корне / и продолжим.

Добавляем swap-файл в / размером в 2 гига:

sudo fallocate -l 2G /swapfile

 

Проверяем права:

ls -lh /swapfile
-rw-r--r-- 1 root root 2.0G Aug 24 17:19 /swapfile

 

Делаем его доступным только для root:

sudo chmod 600 /swapfile

 

И проверим еще раз:

ls -lh /swapfile
-rw------ 1 root root 2.0G Aug 24 17:19 /swapfile

 

Создаем swap:

sudo mkswap /swapfile

 

Включаем swap:

sudo swapon /swapfile

 

А теперь проверяем:

sudo swapon -s
Filename                Type        Size       Used     Priority
/swapfile               file       2097150       0         -1

 

И:

free -m
             total       used       free     shared    buffers     cached
Mem:          3953        154       3799          0          8         83
-/+ buffers/cache:         62       3890
swap:                 2044          0       2044

 

Осталось сделать его перманентным, добавим в fstab строку:

sudo nano /etc/fstab
/swapfile   none    swap    sw    0   0

Сопсно все :)  Теперь наш swap у нас будет работать всегда.

Теперь опишем пару фокусов со swap`om. Есть 2-а параметра ядра которые мы будем править, swappiness и vfs_cache_pressure.

swappiness — на каком уровне использования RAM в работу вступает SWAP. Мы ориентируемся на использования swap только в крайнем случае. Поэтому у нас это будет параметр 10, у кого ядро старше 3.5 можно поставить 1, для таких Зенбуков как у меня я рекомендую поставить 22.

vfs_cache_pressure — тут с описанием немного сложно, это связано с кешированием и скоростью выгрузки этого кеша. Для SSD рекомендуется параметр 50, для обычных HDD — 2000.

 

Проверить ваши текущие параметры можно командами:

cat /proc/sys/vm/swappiness
cat /proc/sys/vm/vfs_cache_pressure

 

Чтобы перманентно их изменить, добавьте в конец файла строки:

sudo nano /etc/sysctl.conf
vm.swappiness = 10
vm.vfs_cache_pressure = 50

 

И перезагрузитесь:

sudo reboot

 

Все готово :)  Могу добавить, что мой Зенбук после подобного тюнинга стал использовать swap крайне редко… и когда он его таки использует, что самое важное, переход на него абсолютно незаметен и без каких либо рывков.

Добавить комментарий