img

SWAP: что это такое, как это работает и как этим управлять?

 

Введение

SWAP (SWAP-память или SWAP-пространство) – это раздел жесткого диска или SSD компьютера, где операционная система (ОС) хранит неактивные данные из оперативной памяти. Таким образом, ОС может работать даже тогда, когда оперативная память заполнена, предотвращая замедление работы или сбои системы.

В этой статье мы рассмотрим, что такое SWAP-память, как она работает и какой объем SWAP’а вам нужен.

Что такое SWAP?

SWAP – это расширение физической оперативной памяти компьютера, расположенной на жестком или SSD-диске. Когда ОС исчерпывает всю доступную оперативную память, она подкачивает данные между оперативной памятью и SWAP. Это механизм, известный как подкачка, который повышает эффективность управления памятью.

SWAP-память важна для систем, где объем оперативной памяти ограничен, или где выполняются задачи, требующие большого объема памяти. Без SWAP’а при превышении емкости оперативной памяти эти системы могут просто выйти из строя.

Типы SWAP’а

Существует два типа SWAP-памяти:

  • Раздел подкачки. Это временное хранилище, которое используется в том случае, когда физическая память полностью заполнена.  
  • Файл подкачки. Это физическое дисковое хранилище, которое используется для расширения SWAP’а доступной памяти.

И то, и другое служит одной и той же цели. Они предоставляют пространство виртуальной памяти на запоминающем устройстве компьютера и выполняют функцию расширения оперативной памяти компьютера.

Ниже представлены ключевые различия между разделом и файлов подкачки:

Различие

Файлы подкачки

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

Постоянство

Временные или постоянные

Постоянные

Расположение 

В любом месте жесткого диска

В определенном разделе жесткого диска

Дисковое пространство

Фрагментированное. При необходимости непрерывное

Непрерывное 

Размер 

Изменяемый по мере необходимости

Фиксированный 

Управляемость 

Создаются и удаляются с помощью инструментов управления файлами

Если они расположены на большом или фрагментированном жестком диске, управлять ими будет сложно

Проще с точки зрения управления, нежели файлы

Можно создавать и удалять с помощью системных инструментов управления дисками

Гибкость 

Более гибкие 

Возможность добавлять или удалять без изменения структуры диска

Менее гибкие за счет фиксированного размера

Безопасность 

Хранятся в файловой системе, к которой могут получить доступ неавторизованные пользователи и которая является менее безопасной

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

Применение

Настольные компьютеры, ноутбуки и облачные среды

Серверы и высокопроизводительные системы

 

Как работает SWAP?

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

SWAP используется в конкретных методах управления памятью:

  • Подкачка. С помощью алгоритмов, в основе которых лежат шаблоны использования, операционная система решает, какие данные перемещать в SWAP-память, а какие из нее.
  • Пейджинг. Операционная система переносит активные данные из заполненной оперативной память в SWAP.
  • Восстановление. Операционная система переносит данные, к которым давно не обращались, из заполненной оперативной памяти в SWAP.

Процесс подкачки состоит из следующих шагов:

1. Исчерпание емкости оперативной памяти.

2. Определение данных, к которым давно не обращались.

3. Перенос данных из оперативной памяти в файл подкачки или выделенные раздел подкачки.

4. Загрузка новых данных или данных из SWAP’а обратно в оперативную память.

Примечание: частота и необходимость выполнения подкачки контролируется параметром, который называется swappiness

Преимущества использования SWAP’а

SWAP-память может оказаться полезной довольно во многих случаях. Ниже представлены преимущества использования SWAP’а:

  • Оптимизация оперативной памяти. За счет перемещения неактивных данных на диск SWAP-память сокращает потребление оперативной памяти. Такая оптимизация позволяет операционной системы обеспечивать работу сразу нескольких программ и приложений. 
  • Больше доступной памяти. Хранение неактивных данных на диске позволяет увеличить объем доступной памяти. Это особенно ценно для систем с ограниченной оперативной памятью. 
  • Лучшая производительность системы. Системе проще выполнять сразу несколько программ и приложений, что положительно сказывается на ее общей производительности.
  • Непрерывная работа. Даже в случае полного заполнения оперативной памяти SWAP способен обеспечивать непрерывную работу системы. 
  • Перерасход памяти. Система может выделять процессам больше памяти, чем это физически доступно. 
  • Изоляция процессов. SWAP изолирует процессы, что помогает избежать конфликтов и ошибок.

Недостатки использования SWAP’а

Несмотря на тот факт, что для систем с ограниченным объемом оперативной памяти SWAP-память может быть полезна, она также может снизить производительность системы. Ниже представлены недостатки использования SWAP’а:

  • Производительность. Подкачка данных между оперативной памятью и диском происходит медленнее, чем реализация доступа к данным непосредственно из физической памяти. Так что, при чрезмерной подкачке это может приводить к снижению производительности. Скорость диска, размер файла подкачки и объем подкачиваемых данных – это все может влиять на производительность. 
  • Узкое место ввода-вывода. Чрезмерная подкачка приводит к увеличению дискового ввода-вывода, что в некоторых случаях становится узким местом. Диску приходится читать и записывать данные в файл подкачки, что занимает некоторое время.
  • Фрагментация. Со временем SWAP-память становится фрагментированной, что не может не влиять на эффективность подкачки и приводит к нерациональному использованию памяти. Причина в том, что операционная система не может записывать данные в файл подкачки непрерывными блоками
  • Надежность. Файлы подкачки хранятся на носителях, которые менее надежны, чем системная память. Отказ диска приведет к повреждению или потере файла подкачки, что, в свою очередь, приведет к потере данных. 
  • Емкость. Дисковое пространство системы ограничивает доступную SWAP-память. Если SWAP-память заполнена, система начинает выгружать активную память, а это приводит к снижению производительности и даже к сбою системы.
  • Потеря данных. Если в процессе подкачки система обесточивается, файл подкачки не попадает на диск, что приводит к потере данных. 

Примечание: ни в коем случае не изменяйте значение параметра swappiness до тех пор, пока не разработаете стратегию защиты о потери данных. 

Как проверить SWAP?

Существует несколько команд для проверки SWAP-памяти – у каждой операционной системы своя. Ниже рассмотрены самые популярные операционные системы.

Linux

Для того, чтобы проверить SWAP-память в Linux, выполните команду freeswapon или top, либо откройте и отредактируйте файл /proc/swaps. Ниже приведены примеры для каждого из вариантов.

Проверка SWAP’а в Linux с помощью команды free

Чтобы проверить общий объем выделенного SWAP’а, выполните следующую команду:

free -m

linux free -m terminal output

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

Проверка SWAP’а в Linux с помощью команды swapon

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

swapon --show

linux swapon --show terminal output

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

Проверка SWAP’а в Linux с помощью команды cat /proc/swaps

Чтобы получить доступ к файлу /proc/swaps и вывести список всех SWAP’ов системы, воспользуйтесь командой cat:

cat /proc/swaps

linux cat /proc/swaps terminal output

Проверка SWAP’а в Linux с помощью команды top

Команда top можно использовать для проверки размера и заполнения SWAP’а как в Linux, так и в macOS:

top

linux top command output

Эта команда выводит все запущенные процессы, в том числе количество задействованной памяти. 

Чтобы отсортировать процессы по потребляемой памяти и выяснить, какие процессы требуют большего объема SWAP-памяти, нажмите Ctrl+M.

Windows 

В Windows есть команда systeminfo, которая выводит самую разную информацию о системе, в том числе объем доступной и заполненной SWAP-памяти.

Просто введите команду:

systeminfo

systeminfo cmd output

macOS

Как мы уже говорили, для проверки SWAP-памяти в macOS можно использовать команду top:

top

macOS top terminal output

Эта команда работает так же, как и в Linux.

Есть и другой способ. Вы можете воспользоваться Мониторингом системы (Activity Monitor). Откройте приложение и перейдите во вкладку Память (System Memory).

Значение Использование своп (Swap Used) показывает, сколько SWAP-памяти используется на данный момент.

macOS activity monitor

Какой объем SWAP-памяти необходим?

На этот вопрос нет какого-то универсального ответа, так как идеальный объем SWAP-памяти может отличаться от случая к случаю. Однако рекомендуется, чтобы SWAP-память имела как минимум такой же размер, как и физическая оперативная память. Например, если размер оперативной памяти составляет 8 Гб, то наилучшим вариантом будет иметь как минимум 8 Гб SWAP-памяти. 

Раньше было обычным делом иметь SWAP, как минимум вдвое превышающий оперативную память. Но в случае современных систем в этом нет необходимости, так как они более эффективно управляют памяти и требует меньшего объема SWAP’а.

Определяя необходимый объем SWAP’а, помимо объема оперативной памяти необходимо учитывать еще несколько факторов:

  • Операционная система. В разных операционных системах используются разные стратегии управления памятью. Например, системы Linux, в отличие от Windows, в большей степени полагаются на SWAP.
  • Тип программ. Программы, потребляющие большое количество памяти, например, видеоредакторы или игры, требуют большего объема SWAP’а, чем менее затратные программы. 
  • Спящий режим. Спящий режим позволяет пользователям сохранять состояние компьютера на диск и возобновлять процессы позже. Соответственно, для размещения сохраненного состояния им требуется достаточный объем SWAP-памяти.

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

Как увеличить/уменьшить объем SWAP’а?

Возможность изменения размера SWAP-памяти крайне важна, поскольку со временем рабочая нагрузка системы может меняться. В результате, объем SWAP’а, необходимый системе, также должен изменяться. 

Примечание: для большинства команд в следующих разделах необходимы привилегии sudo или root.

Увеличение объема SWAP-памяти

Если система выполняет затратные в точки зрения памяти задачи, то увеличение SWAP-памяти – это лучший из возможных вариантов. Ниже рассмотрены примеры, как расширить SWAP-память в Linux, Windows и macOS.

Linux

Для того, чтобы увеличить SWAP-память в Linux, выполните следующие шаги: 

1. Проверьте текущее заполнение SWAP’а:

swapon --show

example of using swapon --show in linux terminal to check swap memory size

На экране отобразится значение 2G.

2. Отключите подкачку с помощью

sudo swapoff -a

Команда обеспечивает тот факт, что файл подкачки не используется. Вывода у этой команды нет.

3. Измените размер файла с помощью команды fallocate. Синтаксис этой команды следующий:

sudo fallocate -l [size]G /path-to-swapfile

Увеличьте размер файла, добавив вместо [size] конкретное число и указав путь к файлу подкачки. Например,

sudo fallocate -l 3G /swapfile

У этой команды также нет вывода. 

4. Получите соответствующие разрешения с помощью команды chmod:

sudo chmod 600 /swapfile

5. Сохраните файл как файл подкачки:

sudo mkswap /swapfile

sudo mkswap swapfile terminal output

6. Включите подкачку:

sudo swapon /swapfile

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

vim /etc/fstab

vim /etc/stab output

Далее замените строку ниже своими спецификациями.

<file system> <mount_point> <type> <options> <dump> <pass>

Например,

./swapfile none swap sw 0 0

Changing the /etc/stab file

Здесь:

  • ./swapfile – это путь к файлу подкачки
  • none указывает на то, что у файла нет конкретной точки монтирования
  • swap определяет тип используемой файловой системы
  • параметр sw показывает, что эта запись относится к файлу подкачки (это сокращение от swap)
  • 0 в поле dump сообщает системе, что не нужно включать файловую систему в резервные копии
  • 0 в поле pass означает, что проверки файловой системы должны пропускаться

8. Проверьте изменение с помощью:

swapon --show

swapon --show 3G size

В результате вы увидите, что значение объема SWAP-памяти изменилось на 3G.

Windows

Для того, чтобы увеличить SWAP-память в Windows, выполните следующие шаги:

1. Щелкните правой кнопкой мыши на Этот компьютер (This PC) и выберите Свойства (Properties).

windows this PC properties

2. В разделе Сопутствующие параметры (Related settings) выберите Дополнительные параметры системы (Advanced system settings).

Advanced system settings in Windows

3. Выберите вкладку Дополнительно (Advanved).

4. В разделе Быстродействие (Performance) нажмите Параметры (Settings).

Advanced system performance settings in Windows

5. Выберите вкладку Дополнительно (Advanved).

Advanced tab in performance options window in Windows

6. В разделе Виртуальная память (Virtual memory) выберите Изменить (Change).

Change allocated virtual memory for paging in Windows

7. Уберите галочку Автоматически выбирать объем файла подкачки (Automatically manage paging file size for all drives) и выберите диск.

Allocated paging memory settings in Windows

8. Выберите Указать размер (Custom size) и установите новое значение:

Choose custom size for virtual memory for paging in Windows

9. Выберите размер, учитывая рекомендации касательно минимального и максимального размера. 

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

macOS

В macOS SWAP-память работает немного иначе, чем в Windows или Linux. Виртуальная память в macOS подразумевает использование следующего:

  • Сжатие памяти. Содержимое неактивных страниц памяти сжимается, необходимость подкачки на диск уменьшается, общая производительность системы повышается.
  • SWAP-память. Это крайняя мера, которую применяют в том случае, когда другие методы управления памятью не способны удовлетворить требования к памяти.

Обычным пользователям не рекомендуется увеличивать объем SWAP’а, поскольку это может привести к неожиданным последствиям. 

Уменьшение объема SWAP-памяти

Если система не выполняет затратные задачи, то вы можете уменьшить объем SWAP'а, чтобы освободить место на диске. И хотя в Linux и Windows можно уменьшить объем SWAP-памяти, выполнять эту операцию не рекомендуется.

Linux

Для того, чтобы уменьшить объем SWAP-памяти в Linux, выполните следующие действия: 

1. Проверьте текущее заполнение SWAP-памяти:

swapon --show

swapon --show command 3G

В выводе отобразится значение 3G.

2. Отключите подкачку:

sudo swapoff -a

У этой команды нет вывода.

3. Измените размер SWAP-памяти с помощью GParted или подобного приложения. 

Примечание: Gparted не всегда установлен в системе Linux. Чтобы его установить, запустите команду sudo apt install gparted.

Если вы используете Gparted, запустите:

sudo gparted

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

Но бывает так, что SWAP-память не представлена в GParted в виде отдельного раздела. Но в случае, если это отдельно выделенный раздел, он будет относится к файловой системе типа linux-swap

linux gparted resize swap partition

Уменьшите размер раздела с помощью GParted.

4. Заново создайте файл подкачки с помощью:

sudo mkswap /swapfile

Recreating swap file

5. Включите подкачку:

sudo swapon /swapfile

У этой команды вывод отсутствует.

6. Перезагрузите систему:

sudo reboot

7. Проверьте изменение с помощью:

swapon -show

using swapon --show in linux to check that a swap file has been decreased successfully

В результате вы увидите, что значение объема SWAP-памяти изменилось на 1G.

Windows

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

1. Щелкните правой кнопкой мыши на Этот компьютер (This PC) и выберите Свойства (Properties).

2. Прокрутите до раздела Сопутствующие параметры (Related settings) и выберите Дополнительные параметры системы (Advanced system settings).

Advanced system settings

3. Выберите вкладку Дополнительно (Advanced).

Windows system properties advanced tab

4. Выберите Параметры (Settings) в разделе Быстродействие (Performance).

5. Выберите вкладку Дополнительно (Advanced).

Windows system performance options advanced tab virtual memory section

6. В разделе Виртуальная память (Virtual memory) нажмите Изменить (Change).

7. Убедитесь, что галочка Автоматически выбирать объем файла подкачки (Automatically manage paging file size for all drives) отсутствует, выберите диск, выберите Указать размер (Custom size) и установите новый размер.

8. Перезагрузите компьютер.

macOS

Уменьшение объема SWAP-памяти в macOS – непростая задача. Она требует изменения размера разделов, что может быть довольно рискованно и требует консультации специалиста. 

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

  • Управлять затратными с точки зрения ресурсов приложениями
  • Использовать Safari вместо таких браузеров, как Chrome или Firefox
  • Закрывать приложения после их использования

macOS управляет SWAP-памятью динамически в зависимости от требований системы, поэтому не рекомендуется самостоятельно заниматься изменением ее размера.

Часто задаваемые вопросы

В этом разделе мы привели ответы на самые распространенные вопросы о SWAP-памяти.

SWAP-память и SWAP-пространство – это одно и то же?

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

  • SWAP-память. Это часть SWAP-пространства, которая была выделена для хранения данных, выгруженных из оперативной памяти.
  • SWAP-пространство. Это более широкий термин. Он охватывает память подкачки и прочие области дискового пространства, которые в настоящее время не используются для целей подкачки, а также концепцию применения этого пространства для работы с переполнением памяти.  

SWAP-память и виртуальная память – это одно и то же?

Нет, SWAP-память и виртуальная память – это не одно и то же, несмотря на то, что эти термины тесно связаны в контексте компьютерных систем. SWAP-память – это конкретный тип виртуальной памяти. 

Виртуальная память — это абстрактное понятие, созданное операционной системой. А вот SWAP-память – это часть виртуальной памяти, которая используется для хранения данных, который на данный момент не так активно используются.

Обязательно ли наличие SWAP-памяти?

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

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

Что случится, если у вас нет SWAP-памяти или вы отключили подкачку?

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

Кроме того, при отключенной подкачке система менее стабильна. У ОС нет подхода к хранению данных, которые на данных момент не используются, а это может привести к повреждению данных и прочим проблемам.

Заключение

Теперь вы узнали, что такое SWAP-память и как она работает. А выполняя действия, описанные в разделах статьи, вы сможете управлять объемом вашего SWAP-пространства. 

Ссылка
скопирована
Системное администрирование
Скидка 10%
Администратор Linux
Стань Linux администратором и сделай весомый шаг в сторону карьеры в DevOps. Самые важные знания от сертифицированного и практикующего тренера с 20 летним стажем
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
  Введение SWAP (SWAP-память или SWAP-пространство) – это раздел жесткого диска или SSD компьютера, где операционная система (ОС
img
  Введение Системные вызовы выступают в роли посредников между приложениями и ядром. Они создают уровень абстракции, который защ
img
  Введение Абсолютные и относительные пути определяют расположение файла или каталога в файловой системе. Это набор инструкций д
img
  Введение Файлы конфигурации Linux определяют поведение и функциональное наполнение операционной системы. Файлы конфигурации –
img
  Введение На протяжении десятков лет Bash (Bourne Again SHell) была основным интерфейсом в Unix-подобных системах. Это унив
img
  Введение Сетевые команды – обязательные инструменты для любого сетевого или системного администратора. С помощью этих кома
Комментарии
ОСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59