рекомендации

четверг, 7 мая 2020 г.

Управление пространством подкачки в современных дистрибутивах Linux


Пространство подкачки (своп) является неотъемлемой частью современной системы Linux, особенно в современных корпоративных средах. Многие из вас могут быть знакомы с его концепциями и умением управлять ими. Могу поспорить, что есть много людей, которые, как и я до недавнего времени, не были знакомы со свопом или управлением им в живом окружении и не могли полностью понять его назначение. Я хочу пройтись по основным понятиям и объяснить, как создавать пространство подкачки и управлять им.


Что такое пространство подкачки?

Вы когда-нибудь видели фильм «Начало»? Предпосылка сосредоточена вокруг «сна во сне». Своп похож на это по своей концепции, потому что это виртуальная память, построенная на физической памяти. Может возникнуть путаница без общего определения «памяти». В вычислительной технике есть два основных типа памяти - оперативная память и жесткий диск.

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

Почему пространство подкачки?

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

Пространство подкачки позволяет вам создавать виртуальное ОЗУ, используя существующее пространство на физическом жестком диске, когда ваша физическая ОЗУ заполняется до предела. Представьте, что вы работаете на сервере и что при инициализации определенных процессов происходит сбой. Часто ошибка Out of Memory (известная также как OOM Killer) возникает при попытке запустить несколько процессов ядра системы одновременно. Это особенно часто встречается в системах с небольшим объемом доступной памяти (виртуальные серверы и т. п.). Легкое решение этой проблемы - выделить несколько Гб памяти для пространства подкачки. Пришло время взглянуть на то, как создать память подкачки.

Как создать своп?

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

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

[ПРИМЕЧАНИЕ: Для просмотра полной документации, пожалуйста, посетите портал клиентов RHEL. ]

Прежде чем создать или увеличить своп, полезно определить, есть ли уже на вашей машине доступный своп. Вы можете быстро проверить это, выполнив команду free -m. Здесь вы можете видеть, что новая установка RHEL8 в Virtual Box поставляется с выделенным 3Gb-свопом, который в настоящее время не используется.


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

Отключение: # swapoff -v /dev/rhel/swap
Изменение размера:   # lvresize /dev/rhel/swap -L +2G 
Форматирование:  # mkswap /dev/rhel/swap
Активация:  # swapon -v /dev/rhel/swap

Если по какой-либо причине вам нужно уменьшить пространство подкачки, просто измените шаг 2, чтобы он выглядел примерно так:

Уменьшение размера: # lvreduce /dev/rhel/swap -L -1G 

Что дальше?

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

[ПРИМЕЧАНИЕ: для глубокого погружения в эту тему обязательно ознакомьтесь со статьей Дэвида Ботса на Opensource.com]

Комментариев нет:

Отправить комментарий