как увеличить файл подкачки linux
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 также покажет недостаток памяти, который может быть исправлен включением или увеличением подкачки.
Раздел подкачки
Для подключения устройства как подкачку:
Чтобы подключить этот раздел подкачки при загрузке, добавьте запись в fstab:
где может быть получен из команды:
Активация используя systemd
Отключение подкачки
Чтобы деактивировать определенное пространство подкачки:
Файл подкачки
Как альтернатива к созданию целого раздела, файл подкачки даёт возможность менять свой размер на лету, а также его гораздо легче полностью удалить. Это может быть особенно важно, если дисковое пространство ограничено (например, небольшие SSD)
Вручную
Создание файла подкачки
Установите права доступа (всеми читаемый файл подкачки это огромная локальная уязвимость)
После создания файла нужного размера, форматируйте его в подкачку:
Активируйте файл подкачки:
В завершении, отредактируйте fstab, добавив запись для файла подкачки:
Удаление файла подкачки
Чтобы удалить файл подкачки, сначала нужно отключить подкачку, а затем файл может быть удален:
Автоматически
systemd-swap
Подкачка с USB устройства
Благодаря модульности, предлагаемой Linux, мы можем иметь множество разделов подкачки на различных устройствах. Если у вас полностью заполнен жесткий диск, то можно использовать USB устройство как временный раздел подкачки. Однако, этот метод имеет серьёзные недостатки:
Чтобы добавить USB устройство как подкачку, сначала необходимо разметить USB флешку для подкачки как описано в секции #Раздел подкачки.
Далее откройте /etc/fstab и добавьте
в опции монтирования первоначальной записи подкачки, таким образом USB подкачка будет иметь приоритет записи над старым разделом.
Данная инструкция будет работать и для других устройств хранения, таких как SD карты и т.д.
Шифрование подкачки
Производительность
Операции подкачки как правило существенно медленнее чем непосредственный доступ к RAM. Отключение подкачки полностью для повышения производительности, иногда может привести к ухудшению, поскольку это уменьшает доступную память для VFS кеша, вызывая более частые и дорогостоящие операции ввода/вывода.
Значения подкачки можно настроить, чтобы помочь производительности:
Swappiness
Swappiness sysctl параметр представляющий частоту использования пространства подкачки. Swappiness может иметь значение от 0 до 100, значение по умолчанию = 60. Низкое значение заставляет ядро избегать подкачки, высокое значение позволяет ядру использовать подкачку наперёд. Использование низкого значения на достаточном количестве памяти, улучшает отзывчивость на многих системах.
Чтобы проверить текущее значение swappiness:
Чтобы временно установить значение swappiness:
Чтобы постоянно установить значение swappiness, отредактируйте (создайте) конфигурационный файл sysctl
Чтобы проверить и больше узнать, почему оно так работает, посмотрите эту статью.
VFS cache pressure
Приоритет
Если у вас больше одного файла или раздела подкачки, вы должны учитывать присвоение приоритетного значения (от 0 до 32767) для каждой области подкачки. Система будет использовать области подкачки с высоким приоритетом, перед использованием областей с низким приоритетом. Например, если у вас быстрый диск ( /dev/sda ) и медленный ( /dev/sdb ), назначьте высокий приоритет для подкачки расположенной на быстром устройстве. Приоритет может быть назначен в fstab как pri параметр:
Если две или более областей будут иметь одинаковый приоритет и он будет самым высоким из доступным приоритетов, то страницы будут распределяться по кругу между областями.
Использование zswap или zram
Zswap это особенность ядра Linux, обеспечивающая сжатие обратного кэша для страниц подкачки. Она увеличивает производительность и уменьшает операции ввода/вывода. ZRAM создаёт виртуальный сжатый файл подкачки в памяти, как альтернатива файлу подкачки на диске.
Чередование
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 и тем самым система удаляет информацию инодам из кэша очень быстро. Но если захотите уменьшить, выполните:
Это будет работать только до завершения вашей сессии и вы можем изменить его в файле ( как и ранее):
В самом низу происываем строку, которая определяет ваше новое значение:
Настройка swap в Ubuntu
Оперативная память имеет очень важное значение для нормальной работы компьютера. В ней размещаются все программы и их данные во время работоспособности устройства. Когда память переполняется, программы могут выдавать различные ошибки или даже прекращать работу. Время отклика системы увеличивается настолько, что работать с ней становиться невозможным.
Самый простой способ увеличить количество оперативной памяти и защитить систему от переполнения памяти, это добавить раздел swap в Ubuntu. В этой статье будет рассмотрено как выполняется настройка swap в Ubuntu 20.04. Будет рассмотрен вариант с добавлением swap как на время работы устройства, так и на постоянное использование.
Обратите внимание
Хотя использование раздела подкачки на жестком диске HDD это привычное явление, применение такого метода для SSD может вызвать проблемы. SSD имеет ограниченное количество перезаписей одного сектора, а область swap постоянно перезаписывается, это очень сильно снизит срок службы вашего диска. Поэтому использование swap пространства на SSD строго не рекомендуется.
Что такое Swap?
Работа с информацией будет выполняться намного медленнее, чем в оперативной памяти, но операционная система будет продолжать работать и использовать swap только для старых данных. В целом, это может быть отличной защитой от переполнения оперативной памяти. Пространство подкачки можно настроить двумя способами, добавив раздел подкачки для Ubuntu на диске или создать файл подкачки.
Проверка Swap
Перед тем как перейти к настройке необходимо проверить не подключены ли разделы подкачки к системе. Для этого необходимо выполнить команду:
Если команда вернет строчку с названием swapfile, это означает что swap в системе уже присутствует:
Если ничего не будет выведено, значит в системе swap не настроен:
Также можно убедиться, что swap активирован или не активирован в системе с помощью утилиты free которая помимо отображения объёма оперативной памяти также отображает информацию об разделе swap:
Строка со swap отображает значение 2,0 GB. Это означает что swap включен и будет использоваться 2 ГБ жёсткого диска, когда память будет переполнена:
Если значения в разделе swap отображаются по нулям это значит, что раздел swap не подключен:
Настройка файла подкачки в Ubuntu 20.04
На серверах часто используется файл подкачки, такой способ применяется, потому что не всегда есть возможность менять разметку диска для выделения раздела swap.
1. Проверка места на диске
Необходимо убедится, что на жёстком диске есть достаточно свободного места. Самый простой способ узнать количество свободного места в терминале – воспользоваться утилитой df:
В данном случае есть достаточно места для размещения и увеличения пространства подкачки. Размер swap в Ubuntu 20.04 зависит от потребностей. Обычно рекомендуют использовать объем в два раза больше, чем реальный размер оперативной памяти. Но как правило больше 4 Гб использовать не нужно. Если планируется использовать гибернацию на персональном компьютере, то нужно использовать объем, равный объему ОЗУ.
2. Создание файла подкачки
Самый быстрый способ создать swap файл в Ubuntu 20.04 – это использовать утилиту fallocate, она создает файл нужного размера мгновенно. Поскольку в качестве примера используется машина с 8 Гб оперативной памяти, необходимо добавить раздел подкачки на 3 Гб. Для этого необходимо выполнить команду:
Далее, необходимо убедиться действительно ли зарезервировано нужное количество памяти. Для проверки необходимо выполнить команду:
Активация swap
Когда файл готов, необходимо превратить его в файл swap. Сначала нужно заблокировать доступ к нему всем кроме суперпользователя. Для этого необходимо выполнить:
sudo chmod 600 /swapfile
Теперь только пользователь root может читать и изменить данный файл:
Далее необходимо создать файловую систему swap командой:
sudo mkswap /swapfile
Когда файл будет размещен и промаркирован необходимо включить файл подкачки чтобы начать его использовать:
sudo swapon /swapfile
После этого можно убедиться, что swap включен, выполнив команду:
Так же наличие swap можно проверить при помощи утилиты free, выполнив команду:
Файл подкачки был успешно создан и активирован. Теперь памяти доступно больше и система не зависнет при нехватке оперативной памяти. Но данный способ будет работать только до перезагрузки устройства.
Постоянный файл подкачки
Как уже было сказано ранее, данный swap будет работать только до перезагрузки сервера или компьютера. Чтобы настройка swap в Ubuntu 20.04 сохранялась после перезагрузки нужно отредактировать файл /etc/fstab. Можно вручную добавить строку в файл, но также можно использовать следующую команду:
Настройка раздела подкачки в Ubuntu 20.04
Настройка swap в Ubuntu 20.04 в виде раздела аналогична тем же методам, которые применяются для создания swap в виде файла, отличие только в том, что вместо файла используется раздел. Предположим, необходимо использовать раздел /dev/sda2. Сначала необходимо создать swap из обычного раздела:
sudo mkswap /dev/sda2
Далее активировать раздел подкачки:
sudo swapon /dev/sda2
И проверить все ли прошло правильно:
Если да, то в списке подключенных разделов отобразится нужный. Последним шагом остаётся добавить строку в /etc/fstab для автоматической активации после перезагрузки:
Дополнительные настройки
Можно контролировать интенсивность использования пространства подкачки в Ubuntu 20.04 с помощью параметра ядра swappiness:
По умолчанию установлено значение 60. Если это значение ближе к 100, система будет пытаться поместить в подкачку больше данных и сберечь память, при значениях близких к нулю, ядро не переносит данные на диск, если в этом нет крайней необходимости. Этот вариант может сделать систему быстрее, особенно актуально для домашних компьютеров.
Чтобы установить значение 10 необходимо выполнить команду:
sudo sysctl vm.swappiness=10
А для сохранения этой настройки после перезагрузки:
Чтобы хранить файлы дольше, можно установить значение в 50 используя команду:
Выводы
С помощью данной инструкции можно на время решить проблему с пространством подкачки если серверу недостаточно памяти, или поможет предотвратить компьютер от зависания. Настройка swap в Ubuntu 20.04 выполняется очень просто. Если у вас остались вопросы, спрашивайте в комментариях!
Нет похожих записей
Оцените статью:
Об авторе
40 комментариев
Всегда использовал раздел подкачки, но после прочтения статьи возник вопрос, если создать постоянный файл подкачки, то можно будет с этим файлом ипользовать гибернацию или нужны дополнительные настройки?
swapon: /swapfile: не удалось выполнить swapon: Недопустимый аргумент
swapon без двоеточия
Такое случается если раздел или файл отформатирован не правильно или там находится что-то лишнее.
А тот своп раздел что мы создаем при установке он что не рабочий получается?
Рабочий, только не все создают раздел подкачки при установке.
а что лучше файл или раздел?
Раздел в определенной степени быстрее, так как не зависит от файловой системы, но этого заметно не будет. Файл гибче, поскольку вы всегда можете изменить размер.
А подскажи пожалуйста, как изменить размер swap-файла? У меня Ubuntu 17.04 x64. Просто работаю с тяжелыми программами и они всю память сжирают за считанные минуты, поэтому есть необходимость не много увеличить swap-файл.
Файл гибче, поскольку вы всегда можете изменить размер. Как изменить размер swap-файла? Ubuntu 16.04 x64.
Помогает только добавление параметра в файл /etc/sysctl.conf
Почитал статью, подумал подумал и решил отказаться от свап-раздела в угоду zram. Весь SSD отдал под корень с хомяком с ФС btrfs, затем sudo apt install zram-config и усё..
Вы советуете изменить значение интенсивности использования пространства подкачки с 60 на 10,
(этот вариант может сделать систему быстрее),
и параметр в vfs_cache_pressure со 100 на 50. Но не рассказали что дает изменение со 100 на 50.
Ответьте пожалуйста.
Как в Linux Mint и Ubuntu увеличить и раздел подкачки. Как в Linux создать файл подкачки Swap
В этой статье на примере Linux Mint и Ubuntu мы научимся смотреть информацию по разделе подкачки, создавать файл подкачки, а также увеличивать доступное для подкачки место.
Файл подкачки — это определённое место на постоянном хранилище (например, на жёстком диске), куда на время сбрасываются данные, которые не умещаются в оперативную память. То есть это возможность увеличить количество оперативной памяти без покупки модулей ОЗУ. Правка, такая «виртуальная» оперативная память работает медленнее.
Посмотреть текущий размер раздела подкачки можно командой:
Либо командой free:
Как можно увидеть, в системе присутствует файл подкачки размером 2 Гигабайта, что, предположим, недостаточно.
Отключаем и удаляем этот файл подкачки следующими командами:
На диске должно быть достаточно места, чтобы туда поместился файл подкачки того размера, который вы задали.
Для создания файла подкачки размером 8G (измените значение по вашему желанию) выполните команду:
Затем выполните команды:
Откройте системный монитор, чтобы убедиться, что система видит файл подкачки:
Либо это можно сделать командой:
Вот и всё! Вам даже не нужно перезагружать систему, чтобы изменения вступили в силу.
Кстати, если вы вновь заходите изменить размер файла подкачки (в сторону увеличения или в сторону уменьшения — не важно), то в точности следуйте этой же инструкции ещё раз, но при создании файла подкачки укажите другой размер.
Как в Linux Mint и Ubuntu удалить файл подкачки
Для полного удаления файла подкачки выполните команды:
Затем откройте файл /etc/fstab:
И удалите из него строку:
Ошибка «fallocate: fallocate failed: Текстовый файл занят»
Если вы столкнулись с ошибкой:
Это означает, что вы хотите создать файл подкачки, но файл с таким именем уже существует и всё ещё используется.
Для его отключения и удаления выполните команды:
Управление файлами подкачки в других Linux
Для увеличения или создания файла подкачки в других дистрибутивах смотрите статьи:
Как создать раздел подкачки на другом диске
Вам необязательно использовать для свопа именно системный диск, на котором может быть мало место. Вы можете создать раздел на любом диске в системе. Подробности смотрите в инструкции «Как создать раздел подкачки не на системном диске. Как переместить раздел подкачки на другой диск».
Связанные статьи:
Рекомендуемые статьи:
15 Комментарии
Алексей, хотел выразить огромную благодарность за Ваш труд. Мне, как продвинутому новичку в мире Linux и всего, что с ним связано, это очень помогает. Так держать! Спасибо большое!
Спасибо за добрые слова.
Спасибо! Толково все изложено. Мне помогло)
При запуске GIMP появляются такие сообщения;»Невозможно открыть тестовый файл подкачки.Чтобы избежать потери данных, проверьте в настройках расположение файла подкачки и права на него. (сейчас «/home/val/.gimp-2.8»).
Невозможно открыть файл подкачки. GIMP использовал всю доступную оперативную память и не может использовать файл подкачки. Некоторые части ваших изображений могут оказаться поврежденными. Сохраните файлы под другими именами, перезапустите GIMP и проверьте путь к файлу подкачки в параметрах программы.»
Куда копать, что изменить, ОС LM 19,2 x64
Суть ошибки в том, что:
Если вы много работаете с большими изображениями, то самый лучший вариант — это установить в компьютер больше оперативной памяти.
Если такой возможности нет, то увеличьте размер файла подкачки, как показано в инструкции на этой странице.
Если на диске действительно закончилось место, то:
б) укажите другую папку подкачки GIMP, для этого в меню GIMP перейдите в Правка → Параметры → Каталоги. Там установите значения для «Папка для временных файлов» и «Папка для подкачки»:
Если даже это невозможно, то в разделе «Системные ресурсы», уменьшите значения для «Максимальная память для отмены», «Размер кэша», а для «Сжатие файла подкачки» выберите «Лучшее сжатие»:
Alexey, спасибо за ответ, но пока ничего не получается. Выкладываю скрины, что выдает система.
На одном из скриншотов видно, что не удаётся создать файл gimprc, поскольку отказано в доступе.
Проверьте, существует ли папка
/.gimp-2.8/ и какие у неё права доступа:
Правильно ли я понимаю, что ваша домашняя папка это /home/val, а имя пользователя val?
То есть всё дело в правах доступа на папку
Папка существует, права есть… Нет времени разбираться с проблемой (срочно нужно обработать десяток фотографий), сейчас переустановлю систему, быстрей получится. Спасибо за участие! С наступащим НГ, успехов, благополучия!
Такой вопрос. По инструкций делал все было норм, но после перезагрузки вернулись исходные значения. Это говорит о том, что я где то не так сделал или же всегда после перезагрузки нужно обновлять размер памяти выделяемой?
После перезагрузки изменения должны сохраняться.
Обратите внимание, что информация о файле подкачки хранится в файле /etc/fstab, но в данной инструкции мы НЕ редактируем этот файл (не добавляем информацию о файле подкачки) по той причине, что в Linux Mint и Ubuntu эта запись уже есть. Данная инструкция, кстати, называется «Как в Linux Mint и Ubuntu увеличить и раздел подкачки» и предназначена для этих двух дистрибутивов.
Возможно, у вас другой дистрибутив и просто нужно добавить запись в файл /etc/fstab чтобы автоматически использовался файл подкачки. О том, как это сделать, можете посмотреть в статье «Как в Kali Linux создать или увеличить файл подкачки (Swap)».
Приветствую! Файл подкачки будет задействован когда закончится физическая память. На моём скрине видно, что задействовано только 14 процентов физической памяти. По этой причине файл подкачки в момент снятия скрина просто не нужен.
У вас точно израсходована физическая память?
Установите stress-ng и запустите что-нибудь такое:
И понаблюдайте за расходом памяти — увидите, как начнёт использоваться файл подкачки.
$ sudo chmod 600 /swapfile
yuriy@Aspire-5742G:
$ mkswap /swapfile
mkswap: невозможно открыть /swapfile: Отказано в доступе
Здравсвуйте!! А что делать дальше?
Здравствуйте, а дальше как в инструкции: там «sudo mkswap /swapfile», там нет «mkswap /swapfile».