- Как добавить пространство подкачки в Debian 10 Linux
- How to Add Swap Space on Debian 10 Linux
- Это руководство проведет вас по шагам добавления файла подкачки в Debian 10 Buster.
- Прежде чем вы начнете
- Создание файла подкачки
- Регулировка значения подкачки
- Удаление файла подкачки
- Swap (Русский)
- Contents
- Пространство подкачки
- Раздел подкачки
- Активация используя systemd
- Отключение подкачки
- Файл подкачки
- Вручную
- Создание файла подкачки
- Удаление файла подкачки
- Автоматически
- systemd-swap
- Подкачка с USB устройства
- Шифрование подкачки
- Производительность
- Swappiness
- VFS cache pressure
- Приоритет
- Использование zswap или zram
- Чередование
- linux-notes.org
- Увеличить SWAP на Ubuntu/Debian/Mint
Как добавить пространство подкачки в Debian 10 Linux
How to Add Swap Space on Debian 10 Linux
Это руководство проведет вас по шагам добавления файла подкачки в Debian 10 Buster.
Пространство подкачки может иметь форму выделенного раздела подкачки или файла подкачки. Обычно при запуске виртуальной машины Debian раздел подкачки отсутствует, поэтому единственный вариант — создать файл подкачки.
Прежде чем вы начнете
Хотя это возможно, использование нескольких пространств подкачки на одной машине не является обычным явлением. Чтобы проверить, включена ли в вашей установке Debian свопинг, выполните следующую команду:
Если вывод пуст, это означает, что в системе нет места для подкачки.
В противном случае, если вы получите что-то вроде ниже, в вашей системе Debian уже включен свопинг.
Чтобы активировать подкачку, пользователь, выполняющий команды, должен иметь права sudo .
Создание файла подкачки
В этом примере мы создадим и активируем 1G своп. Чтобы создать более крупный своп, замените 1G его размером желаемого пространства подкачки.
Следующие шаги показывают, как добавить пространство подкачки в Debian 10.
Сначала создайте файл, который будет использоваться для свопа:
Если fallocate он не установлен, или вы получаете сообщение об ошибке, в котором говорится, что fallocate failed: Operation not supported вы можете использовать следующую команду для создания файла подкачки:
Только пользователь root должен иметь возможность читать и записывать файл подкачки. Выполните команду ниже, чтобы установить правильные разрешения :
Используйте этот mkswap инструмент, чтобы настроить область подкачки Linux для файла:
Активируйте файл подкачки:
Чтобы сделать изменение постоянным, откройте /etc/fstab файл:
и вставьте следующую строку:
Убедитесь, что своп активен, используя команду swapon или, free как показано ниже:
Регулировка значения подкачки
Swappiness — это свойство ядра Linux, которое определяет, как часто система будет использовать пространство подкачки. Подкачка может иметь значение от 0 до 100. Низкое значение заставит ядро по возможности избегать подкачки, в то время как более высокое значение заставит ядро использовать пространство подкачки более агрессивно.
Значение подкачки по умолчанию — 60. Проверить текущее значение подкачки можно с помощью cat команды:
Хотя значение подкачки 60 подходит для большинства систем Linux, для производственных серверов следует установить более низкое значение.
Например, чтобы установить значение подкачки 10, введите:
Чтобы сделать этот параметр постоянным при перезагрузке, добавьте в /etc/sysctl.conf файл следующую строку :
Оптимальное значение подкачки зависит от рабочей нагрузки вашей системы и того, как используется память. Вы должны настраивать этот параметр небольшими приращениями, чтобы найти оптимальное значение.
Удаление файла подкачки
Чтобы деактивировать и удалить файл подкачки, выполните следующие действия:
Отключите пространство подкачки, запустив:
Откройте /etc/fstab файл в текстовом редакторе и удалите запись файла подкачки /swapfile swap swap defaults 0 0 .
Наконец, удалите фактический файл подкачки с помощью rm команды:
Источник
Swap (Русский)
Эта страница дает ознакомление с пространством подкачки и подкачкой страниц в GNU/Linux. Охватывает создание, активацию файлов и разделов подкачки.
Linux делит свою физическую RAM (оперативную память) на кусочки памяти, называемые страницами. Подкачка (swapping) это процесс, когда страницы памяти копируются на предварительно сконфигурированное пространство на жестком диске, называемое пространством подкачки, чтобы освободить эту страницу из памяти. Суммарный размер оперативной памяти и пространства подкачки это количество доступной виртуальной памяти.
Поддержка подкачки обеспечивается ядром Linux и утилитами в пользовательском пространстве из util-linux пакета.
Contents
Пространство подкачки
Пространство подкачки может быть разделом диска или файлом. Пользователи могут создать пространство подкачки во время установки или позднее в любое желаемое время. Пространство подкачки может быть использовано для двух целей, расширить виртуальную память за пределы установленной оперативной памяти (RAM), а также для сохранения данных при гибернации (suspend-to-disk).
Иногда стоит включать Swap в зависимости от установленной оперативной памяти и количества требований для запуска желаемых программ. Если количество оперативной памяти меньше требуемого, тогда стоит включить подкачку. Это позволяет избежать состояния нехватки памяти (OOM), при котором механизм ядра Linux, OOM Killer, будет автоматически пытаться освободить память, убивая процессы. Чтобы увеличить количество виртуальной памяти до требуемого уровня, добавьте необходимую разницу как пространство подкачки. Например, если программа требует 7,5 GB памяти для запуска, а у вас установлено 4 GB оперативной памяти, добавьте разницу 3,5 GB как подкачку. В будущем добавляйте больше пространства к подкачке, учитывая требования. Это вопрос личных предпочтений если вы считаете, что программы должны быть убиты, вместо включения подкачки. Самый большой недостаток в подкачке это снижение производительности, см. раздел #Производительность
Для проверки статуса подкачки, используйте:
free также покажет недостаток памяти, который может быть исправлен включением или увеличением подкачки.
Раздел подкачки
Раздел подкачки может быть создан различными GNU/Linux утилитами разметки. Разделы подкачки обычно обозначаются как тип 82 . Хотя есть возможность использовать разные типы как подкачку, рекомендуется использовать тип 82 , в большинстве случаев systemd, будет автоматически определять его и монтировать (см. ниже)
Для установки раздела как область Linux подкачки, можно использовать mkswap . Например:
Для подключения устройства как подкачку:
Чтобы подключить этот раздел подкачки при загрузке, добавьте запись в fstab:
где может быть получен из команды:
Активация используя systemd
Активация разделов подкачки в systemd базируется на двух различных механизмах. Оба исполняются в /usr/lib/systemd/system-generators . Генераторы запускаются при старте системы и создают нативные systemd юниты для монтирования. Первый systemd-fstab-generator , читает fstab, чтобы генерировать юниты, включая юнит для подкачки. Второй systemd-gpt-auto-generator , осматривает корневой диск, чтобы генерировать юниты. Это операция проходит только на GPT дисках и может идентифицировать разделы подкачки по их тип коду 82 .
Отключение подкачки
Чтобы деактивировать определенное пространство подкачки:
Также можно использовать -a ключ, чтобы деактивировать все пространства подкачки.
С тех пор, как systemd управляет подкачкой, она вновь будет активирована при старте системы, для долговременного отключения автоматической активации найденных пространств подкачки, выполните systemctl —type swap , чтобы найти связанные со .swap юниты и замаскируйте (systemctl mask юнит) их.
Файл подкачки
Как альтернатива к созданию целого раздела, файл подкачки даёт возможность менять свой размер на лету, а также его гораздо легче полностью удалить. Это может быть особенно важно, если дисковое пространство ограничено (например, небольшие SSD)
Вручную
Создание файла подкачки
Использовать под суперпользователем fallocate , чтобы создать файл подкачки размером на свой выбор (M = Mebibytes, G = Gibibytes). Например создание 512 MiB файла подкачки:
Установите права доступа (всеми читаемый файл подкачки это огромная локальная уязвимость)
После создания файла нужного размера, форматируйте его в подкачку:
Активируйте файл подкачки:
В завершении, отредактируйте fstab, добавив запись для файла подкачки:
Удаление файла подкачки
Чтобы удалить файл подкачки, сначала нужно отключить подкачку, а затем файл может быть удален:
В завершении, удалите соответствующую запись из /etc/fstab .
Автоматически
systemd-swap
Установить systemd-swap пакет. Установить swapfc_enabled=1 в Swap File Chunked разделе файла /etc/systemd/swap.conf . Start/enable systemd-swap сервис. Посетить страницу авторов на GitHub для получения подробностей и установить рекомендуемую конфигурацию.
Подкачка с USB устройства
Благодаря модульности, предлагаемой Linux, мы можем иметь множество разделов подкачки на различных устройствах. Если у вас полностью заполнен жесткий диск, то можно использовать USB устройство как временный раздел подкачки. Однако, этот метод имеет серьёзные недостатки:
- USB устройство медленнее чем жесткий диск
- Flash память имеет ограниченное количество циклов записи. Использование его как раздела подкачки, может быстро убить его.
Чтобы добавить USB устройство как подкачку, сначала необходимо разметить USB флешку для подкачки как описано в секции #Раздел подкачки.
Далее откройте /etc/fstab и добавьте
в опции монтирования первоначальной записи подкачки, таким образом USB подкачка будет иметь приоритет записи над старым разделом.
Данная инструкция будет работать и для других устройств хранения, таких как SD карты и т.д.
Шифрование подкачки
Производительность
Операции подкачки как правило существенно медленнее чем непосредственный доступ к RAM. Отключение подкачки полностью для повышения производительности, иногда может привести к ухудшению, поскольку это уменьшает доступную память для VFS кеша, вызывая более частые и дорогостоящие операции ввода/вывода.
Значения подкачки можно настроить, чтобы помочь производительности:
Swappiness
Swappiness sysctl параметр представляющий частоту использования пространства подкачки. Swappiness может иметь значение от 0 до 100, значение по умолчанию = 60. Низкое значение заставляет ядро избегать подкачки, высокое значение позволяет ядру использовать подкачку наперёд. Использование низкого значения на достаточном количестве памяти, улучшает отзывчивость на многих системах.
Чтобы проверить текущее значение swappiness:
Чтобы временно установить значение swappiness:
Чтобы постоянно установить значение swappiness, отредактируйте (создайте) конфигурационный файл sysctl
Чтобы проверить и больше узнать, почему оно так работает, посмотрите эту статью.
VFS cache pressure
Другой sysctl параметр, который действует на производительность подкачки это vm.vfs_cache_pressure , он контролирует склонность ядра к применению памяти, которая используется для кэширования VFS caches, напротив кэширования страниц и подкачки. Увеличение этого значения увеличивает коэффициент с которым VFS caches применяется[2] [устаревшая ссылка 2020-08-06] . Для подробной информации смотри документацию ядра Linux.
Приоритет
Если у вас больше одного файла или раздела подкачки, вы должны учитывать присвоение приоритетного значения (от 0 до 32767) для каждой области подкачки. Система будет использовать области подкачки с высоким приоритетом, перед использованием областей с низким приоритетом. Например, если у вас быстрый диск ( /dev/sda ) и медленный ( /dev/sdb ), назначьте высокий приоритет для подкачки расположенной на быстром устройстве. Приоритет может быть назначен в fstab как pri параметр:
Или как параметр в swapon —priority
Если две или более областей будут иметь одинаковый приоритет и он будет самым высоким из доступным приоритетов, то страницы будут распределяться по кругу между областями.
Использование zswap или zram
Zswap это особенность ядра Linux, обеспечивающая сжатие обратного кэша для страниц подкачки. Она увеличивает производительность и уменьшает операции ввода/вывода. ZRAM создаёт виртуальный сжатый файл подкачки в памяти, как альтернатива файлу подкачки на диске.
Чередование
Нет необходимости использовать RAID для повышения производительности подкачки. Ядро самостоятельно может чередовать подкачку на нескольких устройствах, если вы присвоите им одинаковый приоритет в /etc/fstab . Для подробной информации смотри The Software-RAID HOWTO.
Источник
linux-notes.org
Увеличить SWAP на Ubuntu/Debian/Mint
Была проблема, у меня на Debian была создана подкачка (swap) в 1Гб, но как оказалось, мне этого мало и нужно увеличить хотя бы до 3-хГб. Данная тема «Увеличить SWAP на Ubuntu/Debian/Mint», как раз затронет этот вопрос.
Раздел подкачки является независимым разделом жесткого диска, используемого исключительно для подкачки. Swap представляет собой специальный файл в файловой системе, которая находится среди вашей системы и файлов данных.
1. Проверим сколько у нас выделено Swap-а:
Если не установлен, то установите или используйте аналог программы, под названием top. Чтобы установить используйте команду:
И смотрим сколько у нас выделено памяти:
используем утилиту htop для вывода swap
Собственно, у меня
1Гб, и как сказал ранее, я хочу его увеличить.
Так же, можно заюзать утилиту free и узнать какой swap используется:
Как видно по утилитам, данные совпадают.
Если знаете что на сервере имеется свап, но не помните какой размер, так же имеется утилита которая покажет эти данные:
Выбираем какой способ подойдет вам лучше и используем.
2. Создание раздела подкачки.
Проверяем где и сколько имеется свободного места, можно выполнить команду:
Расскажу несколько способов создать данный файл. Создадим папку в которую попозже мы примонтируем файл подкачки:
— СПОСОБ-1: Использовать утилиту dd.
В созданной папке будет храниться файл подкачки. Следующим действием, создаем файл:
увеличиваем раздел подкачки командой dd
Ждем определенное время, пока оно выполнится.
PS: Возможно прийдется создать сам файл:
Если запускаете от суперпользователя, то не нужно ничего создавать, утилита dd сделает все за вас.
— СПОСОБ-2: Использовать утилиту fallocate.
Данная утилита создаст файл мгновенно и тем самым экономит ваше время:
Мне больше по душе — 2-й способ с использованием утилиты fallocate.a
3. Создание swap-а
Для начала, выставляем нужные права на файл:
Делается это командой:
Создание образа swap командой mkswap
4. Добавление swap в fstab.
Это нужно сделать чтобы каждый раз при старте мой ОС, автоматически монтировался наш фал подкачки, который мы создали, для этого нужно выполнить команду:
И добавляем следующую строчку:
5. Активируем (включаем) нас swap.
Чтобы это сделать, стоит выполнить команду:
6. Проверка.
Необходимо убедится что у нас все нормально работает, сейчас мы это и проверим:
вывод количества swap
Собственно, видно что все работает нормально, но еще сейчас запустим утилиту htop и посмотрим что показывает она:
вывод количества swap с помощью программы htop
7. Взаимодействие SWAP с ОС. Проверика и настройка.
Есть несколько вариантов, которые вы можете настроить для более лучшей производительности вашей системы при работе со свопом.
Параметр swappiness определяет, как часто ваша система обменивается данными из оперативной памяти в подкачку. Этот параметр имеет диапазон от 0-100 и представляет собой процент.
При значениях, близких к нулю, ядро не обменяется данными на диск, если это абсолютно необходимо. Помните, что взаимодействие с файлом подкачки являются «дорогими» в том плане, что такие операции занимают гораздо больше времени, чем взаимодействие с оперативной памятью и тем самым могут привести к значительному снижению производительности.
Значения, которые находятся ближе к 100%, ядро будет пытаться поместить больше данных в своп и освободить RAM.
Чтобы проверить текущее значение swappiness, выполните:
Т.к я использую виртуальную машину для тестов — установка swappiness в 60 — дает не плохое значение, но для VPS желательно приблизить данный параметр в 0. И чтобы изменить swappiness используйте команду SYSCTL.
Например, чтобы установить swappiness в 10, выполним:
Этот параметр не сохранится до следующей перезагрузки и чтобы он применялся при каждом запуски ОС автоматически, нужно изменить (добавив строку в) файл /etc/sysctl.conf:
В самом низу файла, прописываем:
Сохраняем и закрываем файл.
Другой связанной с этим значением параметр которое вы можете захотеть изменить — vfs_cache_pressure, который настраивает, как много система будет выбирать кэш иноде и dentry по сравнению с другими данными.В основном, это доступ к данным о файловой системе и чтобы посмотреть текущее значение, выполните:
Параметр установлен в 100 и тем самым система удаляет информацию инодам из кэша очень быстро. Но если захотите уменьшить, выполните:
Это будет работать только до завершения вашей сессии и вы можем изменить его в файле ( как и ранее):
В самом низу происываем строку, которая определяет ваше новое значение:
Источник