Увеличить SWAP на Ubuntu/Debian/Mint

Увеличить SWAP на Ubuntu/Debian/Mint

Была проблема, у меня на Debian была создана подкачка (swap) в 1Гб, но как оказалось, мне этого мало и нужно увеличить хотя бы до 3-хГб. Данная тема «Увеличить SWAP на Ubuntu/Debian/Mint», как раз затронет этот вопрос.

Раздел подкачки является независимым разделом жесткого диска, используемого исключительно для подкачки. Swap представляет собой специальный файл в файловой системе, которая находится среди вашей системы и файлов данных.

1. Проверим сколько у нас  выделено Swap-а:

# htop

Если не установлен, то установите или используйте аналог программы, под  названием top. Чтобы установить используйте команду:

И смотрим сколько у нас выделено памяти:

<img aria-describedby= >используем утилиту htop для вывода swap

Собственно, у меня ~1Гб, и как сказал ранее, я хочу его увеличить.

Так же, можно заюзать утилиту free и узнать какой swap используется:

7 lines
root@debian:~# free -m
total used free shared buffers cached
Mem: 986 893 93 15 24 312
-/+ buffers/cache: 556 430
Swap: 879 19 860
root@debian:~#

Как видно по утилитам, данные совпадают.

Если знаете что на сервере имеется свап, но не помните какой размер, так же имеется утилита которая покажет эти данные:

5 lines
root@debian:~# swapon -s
Filename Type Size Used Priority
/dev/sda5 partition 901116 19664 -1
root@debian:~#

Выбираем какой способ подойдет вам лучше и используем.

2. Создание раздела подкачки. 

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

# df -h

Расскажу несколько способов создать данный файл. Создадим папку в которую попозже мы примонтируем  файл подкачки:

# mkdir /media/swap

— СПОСОБ-1: Использовать утилиту dd.

В созданной папке будет храниться файл подкачки. Следующим действием, создаем файл:

# sudo·dd if=/dev/zero of=/media/swap/swapfile.img bs=2048 count=1M
<img aria-describedby= >увеличиваем раздел подкачки командой dd

Ждем определенное время, пока оно выполнится.

PS: Возможно прийдется создать сам файл:

# touch /media/swap/swapfile.img

Если запускаете от суперпользователя, то не нужно ничего создавать, утилита dd сделает все за вас.

— СПОСОБ-2: Использовать утилиту fallocate.

Данная утилита создаст файл мгновенно и тем самым экономит ваше время:

# fallocate -l 2G /media/swap/swapfile.img

Мне больше по душе — 2-й способ с использованием утилиты fallocate.a

3. Создание swap-а    

Для начала, выставляем нужные права на файл:

$ chmod 600·/media/swap/swapfile.img

Делается это командой:

$·sudo·mkswap /media/swap/swapfile.img
<img aria-describedby= >Создание образа swap командой mkswap

4. Добавление swap в fstab.

Это нужно сделать чтобы каждый раз при старте мой ОС, автоматически монтировался наш фал подкачки, который мы создали, для этого нужно выполнить команду:

# sudo vim /etc/fstab

И добавляем следующую строчку:

4 lines
[...]
# mount swap image for my·Debian
/media/swap/swapfile.img · · · · swap · · · · swap · · · ·sw · ·0 0
[...]

Или можно:

/media/swap/swapfile.img none swap sw 0 0

5. Активируем (включаем) нас swap. 

Чтобы это сделать, стоит выполнить команду:

# swapon·/media/swap/swapfile.img

6. Проверка. 

Необходимо убедится что у нас все нормально работает, сейчас мы это и проверим:

# cat /proc/swaps
<img aria-describedby= >вывод количества swap

Собственно, видно что все работает нормально, но еще сейчас запустим утилиту htop и посмотрим что показывает она:

#·htop
<img aria-describedby= >вывод количества swap с помощью программы htop

7. Взаимодействие SWAP с ОС. Проверика и настройка.

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

Параметр swappiness определяет, как часто ваша система обменивается данными из оперативной памяти в подкачку. Этот параметр имеет диапазон от 0-100 и представляет собой процент.

При значениях, близких к нулю, ядро ​​не обменяется данными на диск, если это абсолютно необходимо. Помните, что взаимодействие с файлом подкачки являются «дорогими» в том плане, что такие операции занимают гораздо больше времени, чем взаимодействие с оперативной памятью и тем самым могут привести к значительному снижению производительности.

Значения, которые находятся ближе к 100%, ядро будет пытаться поместить больше данных в своп и освободить RAM.

Чтобы проверить текущее значение swappiness, выполните:

4 lines
root@debian:~# cat /proc/sys/vm/swappiness
60
root@debian:~#

Т.к я использую виртуальную машину для тестов  — установка swappiness в 60 — дает не плохое значение, но для VPS желательно приблизить данный параметр в 0. И чтобы изменить swappiness используйте команду SYSCTL.

Например, чтобы установить swappiness в 10, выполним:

3 lines
root@debian:~# sysctl vm.swappiness=10
vm.swappiness = 10
root@debian:~#

Этот параметр не сохранится до следующей перезагрузки и чтобы он применялся при каждом запуски ОС автоматически, нужно изменить (добавив строку в) файл /etc/sysctl.conf:

# vim·/etc/sysctl.conf

В самом низу файла, прописываем:

vm.swappiness=10

Сохраняем и закрываем файл.

Другой связанной с этим значением параметр которое вы можете захотеть изменить — vfs_cache_pressure, который настраивает, как много система будет выбирать кэш иноде и dentry по сравнению с другими данными.В основном, это доступ к данным о файловой системе и чтобы посмотреть текущее значение, выполните:

4 lines
root@debian:~# cat /proc/sys/vm/vfs_cache_pressure
100
root@debian:~#

Параметр установлен в 100 и тем самым система удаляет информацию инодам из кэша очень быстро. Но если захотите уменьшить, выполните:

4 lines
root@debian:~# sysctl vm.vfs_cache_pressure=50
vm.vfs_cache_pressure = 50
root@debian:~#

Это будет работать только до завершения вашей сессии и вы можем изменить его в файле ( как и ранее):

$ sudo vim /etc/sysctl.conf

В самом низу происываем строку, которая определяет ваше новое значение:

vm.vfs_cache_pressure = 50

Видно, что и тут нормально все работает. На этом моя статья «Увеличить SWAP на Ubuntu/Debian/Mint» на сайте http://linux-notes.org завершена.

Was this helpful?

0 / 0