Файл подкачки линукс это

Все о пространстве подкачки в ОС Линукс

Оригинал: All about Linux swap space
Автор: Gary Sims
Дата: 3 декабря 2007
Свободный перевод: Алексей Дмитриев
Дата перевода: 6 декабря 2007

При копировании материала обязательны указание автора, переводчика и ссылки на оригинал статьи и настоящую страницу как первоисточник перевода!

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

Линукс разделяет доступную физическую оперативную память (RAM — random access memory) на блоки, называемые страницами. Своппинг — это процесс, при котором страница памяти копируется в заранее заготовленное место на жестком диске, называемое пространством подкачки, чтобы освободить данную страницу памяти для новой информации. Сумма объемов физической оперативной памяти и пространства подкачки называется объемом доступной виртуальной памяти.

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

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

В Линуксе пространство подкачки бывает двух видов: раздел подкачки (swap partition) и файл подкачки (swap file).

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

В ответ вы получите что-то типа:

Каждая строка относится к отдельному пространству подкачки, имеющемуся в системе. В данном случае строка всего одна. Поле ‘Type’ (Тип) говорит, что мы имеем раздел (partition), а не файл. Поле ‘Filename’ сообщает, что этот раздел находится на диске sda5. Поле ‘Size’ (размер) показывает размер раздела в килобайтах. Поле ‘Used’ (Использовано) сообщает, сколько килобайт пространства подкачки используется (в данном случае ноль). ‘Priority’ (Приоритет) сообщает, какое из пространств подкачки Линукс использует первым. Подсистема подкачки в линуксе имеет замечательное свойство: если вы смонтируете с одинаковым приоритетом два (или больше) пространств подкачки (желательно на разных устройствах), Линукс станет использовать их для подкачки поочередно, что существенно увеличит производительность своппинга.

Раздел подкачки

Для того чтобы добавить дополнительный раздел подкачки в свою систему, необходимо сначала подготовить его. Шаг первый — убедиться, что раздел помечен как swap partition (раздел подкачки). Шаг второй — создать на нем специальную файловую систему — swap filesystem. Чтобы удостовериться, что раздел помечен как swap, с правами root (суперпользователя) наберите команду:

Замените /dev/hdb на то устройство, которое хотите проверить. В ответ получите что-то вроде:

Если раздел не помечен как Linux swap, то придется изменить его с помощью программы fdisk, используя опцию ‘t’. Будьте предельно осторожны при работе с разделами, если не хотите по ошибке удалить важный раздел, или переформатировать системный раздел в раздел подкачки. Вся информация на swap-разделе будет потеряна, так что семь раз отмерьте, один раз отрежьте. Также имейте в виду, что Solaris помечает свои разделы тем же идентификатором, что Линукс — свои разделы подкачки (Linux swap), так что поостерегитесь случайно испортить раздел Solaris (если они у вас есть). Когда раздел помечен как swap, необходимо отформатировать его командой mkswap (make swap), опять же, как root:

Читайте также:  Linux дистрибутив собственная сборка

Если не появляется сообщений об ошибках, значит ваш раздел отформатирован и готов к работе. Чтобы немедленно его активировать напечатайте:

Убедиться, что раздел используется, можно запустив команду swapon -s . Чтобы новый раздел автоматически подключался (монтировался) при запуске компьютера, нужно отредактировать файл /etc/fstab, который содержит список файловых систем, подключаемых (монтируемых) при загрузке. Формат каждой строки таков:

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

/dev/hdb1 none swap sw 0 0

Здесь /dev/hdb1 — сам раздел подкачки, он не имеет специальной точки монтирования (mount point), следовательно, пишем none (нет). Его тип (type) — swap, обозначается опцией sw. Последние два параметра не используются, поэтому там нули.

Можно проверить без перезагрузки компьютера, будет ли ваш новый раздел подкачки автоматически подключаться. Для этого сначала отключим все пространства подкачки командой swapoff -a , затем обратно подключим все пространства подкачки, перечисленные в /etc/fstab командой swapon -a , затем проверим, что именно подключилось, командой swapon -s .

Файл подкачки (Swap file)

Кроме разделов подкачки, Линукс поддерживает также файлы подкачки, которые можно создавать, подготавливать и монтировать способом, похожим на вышеописанный. Преимущество файлов подкачки в том, что не нужно искать свободный раздел или создавать новый для увеличения пространства подкачки.

Для создания файла подкачки используйте команду dd , которая «умеет» создавать пустые файлы. Для создания файла в 1Гб напечатайте:

dd if=/dev/zero of=/swapfile bs=1024 count=1048576

Здесь: /swapfile — имя файла подкачки, а число 1048576 — это размер файла в килобайтах (т.е. 1Гб) Подготавливаем файл подкачки при помощи команды mkswap, также как поступали с разделом, но на этот раз указываем имя файла:

Аналогично монтируем его командой swapon:

Строка в файле /etc/fstab для файла подкачки выглядит так:

Какого размера должно быть пространство подкачки?

В принципе, возможно использовать Линукс систему вообще без подкачки, и система будет работать хорошо, если у нее большая оперативная память. Но, если, в один прекрасный момент, этой памяти не хватит, то систему ждет крах — ей просто не останется шансов. Так что советую иметь пространство подкачки, особенно в наши дни, когда место на винчестере сравнительно дешево.

Ключевой вопрос — сколько? Старые версии Unix-подобных операционных систем (такие как Sun OS и Ultrix) рекомендовали пространство подкачки вдвое или втрое превышающее размер оперативной памяти. Современные разработки (такие как Линукс) не требуют так много, но могут использовать его, если им дадут. Правило тут такое: 1) для настольных систем выделяйте пространство подкачки равное удвоенному размеру оперативной памяти, это позволит вам одновременно запускать много приложений (многие из которых, будучи неактивны, легко могут быть откачаны на диск, освободив память для активных); 2) для сервера выделяйте меньше пространства подкачки (около половины размера оперативной памяти), так, чтобы обеспечить при необходимости возможность своппинга, но следите за использованием пространства подкачки, и при необходимости наращивайте оперативную память (RAM); 3) для старых компьютеров с маленьким объемом оперативной памяти (скажем, только 128Мб), выделяйте столько пространства для подкачки, сколько сможете, вплоть до 1Гб.

Ядро Linux 2.6 добавило новый параметр, называемый swappiness (перевода не существует), позволяющий администратору регулировать то, как Линукс оперирует с пространством подкачки. Это число от 0 до 100. В общих чертах, чем больше это число, тем больше страниц откачиваются из оперативной памяти на диск, а чем меньше значение swappiness, тем большее число приложений остаются в оперативной памяти, даже если они неактивны. Разработчик ядра Andrew Morton утверждает, что выставляет на своих десктопах swappiness на высочайший уровень — 100, говоря при этом: «Я считаю, что не следует ограничивать ядро в его стремлении откачивать мусор. Вы же не хотите, чтобы сотни мегабайт памяти, занятой раздувшимися приложениями, без пользы зависли в вашей машине. Выгрузите их на диск, а память используйте на что-нибудь полезное». У идеи Мортона есть и оборотная сторона: если память освобождается слишком быстро, то время отклика приложений возрастет, так как при вызове приложения, система должна будет сначала закачать его обратно в память, что создаст ощущение медлительности.

Значение swappiness по умолчанию равно 60. Можно изменить его временно (до следующей перезагрузки) командой от имени root:

echo 50 > /proc/sys/vm/swappiness

Если хотите изменить его на постоянной основе, тогда нужно изменить параметр vm.swappiness в файле /etc/sysctl.conf

Заключение

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

Источник

Создайте файл подкачки Linux

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

Читайте также:  The next microsoft windows

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

Это руководство было протестировано в системах Linux с Ubuntu 18.04 и CentOS 7, но оно должно работать с любым другим дистрибутивом Linux.

Как добавить файл подкачки

Выполните следующие действия, чтобы добавить 1 ГБ свопа на свой сервер. Если вы хотите добавить 2 ГБ вместо 1 Гб, заменить 1G с 2G .

Создайте файл, который будет использоваться для свопа:

Если faillocate не установлен или вы получили сообщение об ошибке, в котором fallocate failed: Operation not supported что fallocate failed: Operation not supported вы можете использовать следующую команду для создания файла подкачки:

Только пользователь root должен иметь возможность писать и читать файл подкачки. Чтобы установить правильный тип разрешений :

Используйте утилиту mkswap чтобы настроить файл как область подкачки Linux:

Включите свопинг с помощью следующей команды:

Чтобы сделать изменение постоянным, откройте файл /etc/fstab и добавьте следующую строку:

Чтобы убедиться, что своп активен, используйте либо команду swapon либо free как показано ниже:

Как настроить значение подкачки

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

Значение swappiness по умолчанию — 60. Вы можете проверить текущее значение swappiness, введя следующую команду:

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

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

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

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

Как удалить файл подкачки

Если по какой-либо причине вы хотите деактивировать и удалить файл подкачки, выполните следующие действия:

Сначала деактивируйте своп, набрав:

Удалите запись файла подкачки /swapfile swap swap defaults 0 0 из файла /etc/fstab .

Наконец, удалите фактический файл подкачки с помощью команды rm :

Выводы

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

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

Источник

Файл подкачки Linux — что это и как с ним работать

Современные устройства, функционирующие на различных операционных системах, имеют файл подкачки. Он служит для подстраховки оперативной памяти компьютера. В этом вопросе ОС Linux не является исключением из правила.

Для чего это необходимо? Когда пользователь ПК загружает оперативную память под завязку, устройство получает дополнительный объем памяти из файла подкачки. В каких ситуациях это может потребоваться:

  1. Для сохранения нормальной производительности компьютера в том случае, если запас ОЗУ постепенно заканчивается. Без файла подкачки устройство начнет заметно притормаживать. Это отрицательно скажется на комфорте работы с ПК.
  2. Для оптимального распределения приоритетов (система определит, какой вид памяти будет выделен на те или иные процессы).

Эта информация пригодится всем, кто имеет дело со swap. Данный термин имеет следующее значение: swap – это файл в системном разделе или отдельный раздел диска. В большинстве своем его принято создавать в процессе установки ОС. Но если есть такая необходимость, можно создать swap в любой другой момент времени.

В отдельно взятых случаях желание пользователя относительно присутствия swap на ПК не учитывается. В некоторых версиях ОС Ubuntu Linux файл подкачки создается по умолчанию, и с этим уже ничего не поделать. Остается лишь принять это, как факт. Многие юзеры не довольны таким решением, поскольку файл подкачки на их компьютерах занимает порядком 1 Гб памяти.

Проверка на наличие файла подкачки в ОС Linux

Если swap есть на используемом устройстве, с ним можно проделывать множество различных действий. Однако прежде чем приступить к конкретной задаче, нужно хотя бы убедиться в наличии swap на конкретном ПК. А то вдруг окажется так, что swap и вовсе отсутствует.

Чтобы посмотреть swap в операционной системе Линукс, необходимо задать определенную команду. Она выглядит следующим образом:

  1. total — всего памяти.
  2. used — сколько используется в данный момент.
  3. free — свободная память, не используется.

К сожалению, данная команда показывает только общую информацию (total, used, free) и не может дать четкого определения тому, что это файл подкачки или смонтированный раздел. Именно поэтому для дополнительноой проверки воспользуемся другой командой — «swapon».

Как видно из скриншота выше, swap находится в разделе /dev/sda5, размером 2,8 gb и это не файл.

Читайте также:  Pixel check mac os portable

Давайте предположим следующий возможный вариант развития сценария: файл подкачки отсутствует на вашем компьютере. Как это выявить? Введите в терминале команду free -h, и ознакомьтесь с полученной информацией. Если в строке «Подкачка» стоят сплошные нули, то swap не создан в операционной системе Linux.

Создание swap Linux

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

Воспользуйтесь терминалом для реализации задуманного.

# fallocate -|1G /swapfile

Примечание: 1 G – величина файла подкачки.

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

# chmod 600 /swapfile

Примечание: в конце этой строки стоит название swap файла. Наименование выбирается на свое усмотрение. Его можно поменять.

Права 600 означает — владелец может читать/писать, остальным все запрещено.

  1. Как создать файловую систему

Нужный объект создан, но на данный момент ОС Linux не определяет его, как файл подкачки. Необходимо воспользоваться специальной командой для устранения этой проблемы:

По завершению операций, описанных выше, ОС Линукс начинает понимать, что новый объект возьмет на себя роль файла подкачки. Пришло время активировать его. Для этих целей введите в терминале следующее:

Как посмотреть, произошло ли распознание файла подкачки? Задайте в строке следующую команду:

При правильном следовании инструкции вы увидите тип файла и его величину в соответствующих полях.

  1. Как сохранить настройки

Внесенные коррективы имеют временный характер – они утратят свою актуальность сразу же после перезагрузки устройства. Их нужно сделать постоянными, но к этому вернемся чуть позже. Для начала следует произвести другое важное действие. А теперь попробуем создать резервную копию swap. Для этих целей введите в строке:

# cp /etc/fstab /etc/fstab.back

Настройки будут сброшены после перезапуска компьютера. Чтобы избежать этого, необходимо вписать в файл некоторую информацию. Осуществите эту идею с помощью:

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

Дело сделано. Теперь можно смело перезапускать устройство. Сохраненные данные останутся на месте.

Как настроить Swapiness

ОС Linux может использовать swap с разной частотой. Частота использования может варьироваться от 0 до 100. Она задается в параметрах swap.

Значение, приближенное к «0» означает, что система начнет обращаться к файлу подкачки только в самых экстренных случаях (как страховочный вариант). Значение, приближенное к «100» означает, что система начнет освобождать физическую память, перемещая объекты в раздел подкачки.

Команда для проверки установленного параметра в устройстве:

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

В приведенном примере «25» – новое значение. Вы можете выбрать число по собственному усмотрению. Главное, чтобы значение попадало в диапазон от 0 до 100. После внесения изменений нужно еще раз позаботиться о том, чтобы они не обнулились после перезапуска системы. Введите в строке терминала запрос:

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

vm.swapiness=25 (или любое другое значение, которое вас устроит).

Размер файла подкачки в ОС Линукс

Существует несколько способов увеличения/уменьшения swap файла в устройствах, функционирующих на ОС Linux. Перед тем, как разобраться с этим вопросом подробнее, следует уделить несколько секунд своего внимания важному напоминанию:

При отключении swap операционная система компьютера начинает использовать только ОЗУ. Если объем оперативной памяти закончится, устройство может зависнуть. Все рабочие процессы ПК остановятся.

Чтобы избежать подобных неприятностей, нужно создать запасной (временный) файл подкачки перед тем, как удалять или изменять swap. Обязательны ли эти действия к выполнению? Здесь нужно смотреть по ситуации. Если ОЗУ устройства достаточно велика, можно вполне обойтись и без создания второго swap файла. В этом нет ничего рискованного.

Теперь приступаем к следующему этапу настройки – корректировке величины файла. Чтобы все прошло безопасно, swap нужно отключить. Введите в строке запрос:

Чтобы изменить величину swap, введите в строке:

# fallocate -| 2G /swapfile

Вместо «2G» укажите подходящую для вас величину файла подкачки. Для его форматирования воспользуйтесь этой командой:

И последнее действие – включение файла подкачки. Попробуйте включить его при помощи:

Интересная информация: пользователь может создавать и использовать несколько swap файлов на устройстве с ОС Linux.

Удаление swap в операционной системе Линукс

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

Теперь можно спокойно приступать к удалению при помощи команды «rm».

Важное напоминание: при создании нового файла подкачки в ОС Линукс придется снова установить права на swap.

Итоги

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

Источник

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