Установка linux нет swap

Как добавить swap в Ubuntu 20.04

Добавление swap (пространства подкачки) – один из самых простых способов предотвратить ошибки памяти приложений. Этот мануал поможет создать и включить swap-пространство на сервере Ubuntu 20.04.

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

Что такое swap?

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

Информация, записанная на жесткий диск, подгружается медленнее, чем информация, хранящаяся в оперативке. Операционная система запускает данные приложения в оперативной памяти, а swap использует для хранения более старых данных. В целом, иметь swap-пространство на случай, если ОЗУ переполнится, – отличный способ перестраховаться.

1: Проверка системы на swap

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

Чтобы узнать, есть ли в текущей системе активное swap-пространство, введите:

Если команда не вернула никакого результата, пространства swap в текущей системе нет.

Еще один способ проверки swap – утилита free, которая показывает использование памяти системы.

free -h
total used free shared buff/cache available
Mem: 981Mi 122Mi 647Mi 0.0Ki 211Mi 714Mi
Swap: 0B 0B 0B

Как видно из последней строки, общее использование swap в сети равно 0, что совпадает с результатом предыдущей команды.

2: Проверка пространства на жёстком диске

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

df -h
Filesystem Size Used Avail Use% Mounted on
udev 474M 0 474M 0% /dev
tmpfs 99M 932K 98M 1% /run
/dev/vda1 25G 1.4G 23G 7% /
tmpfs 491M 0 491M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 491M 0 491M 0% /sys/fs/cgroup
/dev/vda15 105M 3.9M 101M 4% /boot/efi
/dev/loop0 55M 55M 0 100% /snap/core18/1705
/dev/loop1 69M 69M 0 100% /snap/lxd/14804
/dev/loop2 28M 28M 0 100% /snap/snapd/7264
tmpfs 99M 0 99M 0% /run/user/1000

Читайте также:  Просмотр количества памяти linux

В данном случае диск – это устройство / в столбце Mounted on; как видите, места на нём достаточно много (в нашем примере использовано всего 1,4 Г; ваш вывод, конечно, будет другой).

Существует множество разных мнений о «правильном» размере swap-пространства. В целом, это зависит от личных предпочтений пользователя и требований приложения. Принято считать, что swap-пространство должно быть равно или вдвое больше объема оперативной памяти системы. В этом вопросе нужно ориентироваться на свободное дисковое пространство. Например, если RAM системы – 4 гигабайта, а вдвое большее swap-пространство (т.е., 8 гигабайт) займет существенную часть диска, swap должен быть не более 4 гигабайт.

3: Создание swap-файла

Получив все необходимые данные о системе, можно приступить к созданию swap-файла. В мануале такой файл называется swapfile и находится в root-каталоге (/). Файл должен иметь объем необходимого swap-пространства.

Быстрее всего создаёт такой файл программа fallocate. Она мгновенно создает файл заранее выделенного размера.

Поскольку в данном случае используется сервер с 1 Гб RAM, мы создадим 1 Гб swap-пространства.

sudo fallocate -l 1G /swapfile

Чтобы проверить выделенный объём памяти, введите:

ls -lh /swapfile
-rw-r—r— 1 root root 1.0G Apr 25 11:14 /swapfile

Как видите, команда создала файл с указанным объёмом памяти.

4: Включение swap-пространства

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

Для начала нужно изменить права на файл, чтобы только root имел право на чтение. Swap-файл с правами на чтение и изменение другими пользователями – огромный риск для безопасности сервера. Чтобы передать все права пользователю root, введите:

ls -lh /swapfile
-rw——- 1 root root 1.0G Apr 25 11:14 /swapfile

Теперь только root может читать файл и вносить изменения в него. Итак, файл защищен, теперь можно указать системе на swap-пространство с помощью команды:

sudo mkswap /swapfile
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=6e965805-2ab9-450f-aed6-577e74089dbf

Чтобы включить swap-пространство, введите:

Убедитесь, что процедура прошла успешно, проверив отчеты системы о swap:

sudo swapon —show
NAME TYPE SIZE USED PRIO
/swapfile file 1024M 0B -2

Читайте также:  Фильтр с ошибками линукс

Также можно использовать утилиту free:

free -h
total used free shared buff/cache available
Mem: 981Mi 123Mi 644Mi 0.0Ki 213Mi 714Mi
Swap: 1.0Gi 0B 1.0Gi

Теперь система сообщает о включенном swap-пространстве.

5: Автозагрузка swap

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

sudo cp /etc/fstab /etc/fstab.bak

Добавьте данные о swap в конец файла.

echo ‘/swapfile none swap sw 0 0’ | sudo tee -a /etc/fstab

6: Тонкая настройка swap

Существует несколько опций, которые могут влиять на производительность системы при работе swap.

Параметр swappiness

swappiness задает частоту использования swap-пространства системой. Значение swappiness выражается числом от 0 до 100 и измеряется в процентах.

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

Если значение swappiness ближе к 100, система будет передавать в swap большое количество данных с целью сохранить больше свободного места в RAM. В зависимости от профиля памяти приложения и цели использования сервера, это может быть лучше в некоторых случаях.

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

cat /proc/sys/vm/swappiness
60

Значение 60 не так уж плохо, но для виртуального выделенного сервера лучше установить меньшее значение.

Чтобы, к примеру, задать параметру swappiness значение 10, нужно ввести:

sudo sysctl vm.swappiness=10
vm.swappiness = 10

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

Сохраните и закройте файл.

Параметр vfs_cache_pressure

Еще одна важная опция – это vfs_cache_pressure. Она управляет склонностью ядра восстанавливать память, которая используется для кэширования каталогов и инодов объектов.

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

cat /proc/sys/vm/vfs_cache_pressure
100

Согласно текущим настройкам, система удаляет иноды из кэша слишком быстро. Установив меньшее значение (например, 50), система будет хранить информацию дольше:

sudo sysctl vm.vfs_cache_pressure=50
vm.vfs_cache_pressure = 50

Опять же, это значение действительно только для текущей сессии. Чтобы сделать его постоянным, нужно (как и в случае со swappiness) открыть конфигурационный файл sysctl в текстовом редакторе:

Читайте также:  Редактор csv файлов linux

Сохраните и закройте sysctl.

Заключение

Данный мануал рассказал вам, как рационально использовать оперативную память. Теперь swap-пространство может предотвратить некоторые общие проблемы системы.

Столкнувшись с ошибкой OOM (out of memory) или обнаружив, что система не может запустить нужные приложения, вы можете оптимизировать конфигурации приложений или обновить сервер. Настройка swap дает большую гибкость и сэкономит время при работе с менее мощным сервером.

Источник

Добавить swap раздел в linux

Настраивал очередной новый VDS сервер. Обнаружил, что после установки из стандартного шаблона хостинга, сервер без swap файла. Мониторинг zabbix после установки ругается на отсутствие свопа. Не стал отключать триггер, решил быстро добавить своп, в принципе, он может пригодиться.

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

Инструкция подойдет практически к любому линуксу, не зависимо от версии. Для начала проверим, есть ли у нас swap раздел или нет:

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

Первым делом создаем файл для наших целей:

# dd if=/dev/zero of=/swap bs=1024 count=1000000

Размер файла 1Гб, равен объему памяти на сервере. Можно сделать и в 2 раза больше, но не вижу в этом необходимости. Вы выбирайте размер на свое усмотрение.

Форматируем файл в формат свопа:

Подключаем файл к системе:

# chmod 0600 /swap # swapon /swap

Проверяем результат работы:

добавление swap в linux

Все в порядке, раздел добавлен. Теперь нам нужно сделать так, чтобы swap раздел монтировался при загрузке. Для этого добавляем в fstab строку:

/swap swap swap defaults 0 0

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

Если вдруг решите, что своп вам больше не нужен, отключить его так же просто, как и подключить:

Дальше можно удалять сам файл и вычищать его из fstab.

Онлайн курс по Linux

  • Умение строить отказоустойчивые кластера виртуализации для запуска современных сервисов, рассчитанных под высокую нагрузку.
  • Будете разбираться в современных технологиях кластеризации, оркестрации и виртуализации.
  • Научитесь выбирать технологии для построения отказоустойчивых систем под высокую нагрузку.
  • Практические навыки внедрения виртуализации KVM, oVirt, Xen.
  • Кластеризация сервисов на базе pacemaker,k8s, nomad и построение дисковых кластеров на базе ceph, glaster, linstore.

Источник

Оцените статью
Adblock
detector