Изменение размера файла подкачки linux

Как изменить значение подкачки в Linux

Место подкачки — это часть жесткого диска, которая используется при заполнении оперативной памяти. Пространство подкачки может быть выделенным разделом подкачки или файлом подкачки .

Когда в системе Linux заканчивается физическая память, неактивные страницы перемещаются из ОЗУ в область подкачки.

Swappiness — это свойство ядра Linux, которое устанавливает баланс между заменой страниц из физической памяти в пространство подкачки и удалением страниц из кеша страниц. Он в основном определяет, как часто система будет использовать пространство подкачки.

В этой статье объясняется, как изменить значение swappiness в системах Linux.

Проверка значения замены

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

Значение swappiness по умолчанию в большинстве дистрибутивов Linux — 60:

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

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

Изменение значения подкачки

Подкачка может иметь значение от 0 до 100. Значение 0 указывает ядру агрессивно избегать подкачки как можно дольше. Значение 100 будет агрессивно выгружать процессы из физической памяти.

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

Доступ к памяти подкачки происходит намного медленнее, чем прямой доступ к физической памяти. Более низкое значение параметра swappiness, скорее всего, улучшит общую производительность системы. Для обычной настольной установки рекомендуется значение 10. Для большинства серверов баз данных рекомендуется значение подкачки 0 или 1.

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

Например, чтобы установить значение swappiness на 10 во время выполнения, введите следующую команду от имени пользователя root или sudo :

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

Найдите параметр vm.swappiness и измените его значение. Если этот параметр не существует, добавьте в файл следующую строку:

Выводы

Мы показали вам, как изменить значение параметра swappiness.

Если у вас есть отзыв, оставьте комментарий ниже.

Источник

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 как подкачку. В будущем добавляйте больше пространства к подкачке, учитывая требования. Это вопрос личных предпочтений если вы считаете, что программы должны быть убиты, вместо включения подкачки. Самый большой недостаток в подкачке это снижение производительности, см. раздел #Производительность

Читайте также:  Хром для windows server

Для проверки статуса подкачки, используйте:

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 память имеет ограниченное количество циклов записи. Использование его как раздела подкачки, может быстро убить его.
Читайте также:  Управление профилем пользователя windows 10

Чтобы добавить 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 используется:

Читайте также:  Astra linux не удается скопировать ppd файл

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

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

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

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 и тем самым система удаляет информацию инодам из кэша очень быстро. Но если захотите уменьшить, выполните:

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

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

Источник

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